为DNAT Nftables创建Set或Vmap。

问题描述 投票:0回答:1

我想知道是否有人已经找到了一种方法来做这件事。我已经能够用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 和 port 的地图?假设一个元素是这样的(是的,我需要在dnataddr上有一个不同的端口)。

nft add element ip nat dnat_map{\
1.1.1.1 .  2222 : 192.168.1.1 . 22,\
}
linux firewall netfilter debian-buster nftables
1个回答
0
投票

如果有人遇到这种情况,我找到了解决问题的办法。在我的情况下,我的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有帮助,但需要更新,因为有些语法已经不支持了。

© www.soinside.com 2019 - 2024. All rights reserved.