为DNAT Nftable创建集或Vmap

我想知道是否有人找到了一种方法。我已经能够使用nftables为我的DNAT规则创建一个集合,但是我还没有实现我真正想要的。这是我到目前为止拥有的组合:

nft add map ip nat dnat_map{type ipv4_addr . inet_service : ipv4_addr \;}

但是我真正想要实现的是这样的东西

nft add map ip nat dnat_map{type ipv4_addr . inet_service : ipv4_addr . inet_service \;}

但是Nftables确实不喜欢这种格式,因此有人能制作一个允许元素同时具有daddr和dport以及dnat daddr和端口的地图吗?假设ofc元素看起来像这样(是的,我需要在dnat addr上使用其他端口):

nft add element ip nat dnat_map{\
1.1.1.1 .  2222 : 192.168.1.1 . 22,\
}
collinmao 回答:为DNAT Nftable创建集或Vmap

万一其他人遇到了这个问题,我找到了解决我问题的方法。就我而言,我对RDP和SSH连接的了解非常安全,因此我只需要一个端口用于Windows,而另一个端口则用于Linux设备。得出的规则是。

nft add rule ip nat prerouting iifname $wan_iface ip saddr @admin_ips tcp dport 2222 dnat ip daddr map @wan_to_lan : tcp dport map{2222 : 22}

然后我的@wan_to_lan地图如下

nft add map ip nat wan_to_lan {type ipv4_addr : ipv4_addr \;}
nft add element ip nat wan_to_lan {1.1.1.1:192.168.1.x}

诀窍是在设置规则时必须记住您可以使用一个或多个地图。例外是已经以判决结束该规则的vmap。我认为Wiki会有所帮助,但由于不再支持某些语法,因此需要对其进行更新。

本文链接:https://www.f2er.com/2327599.html

大家都在问