将防火墙规则从 iptables 转换为 nftables

将防火墙规则从 iptables 转换为 nftables

我有这个规则iptables

iptables -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT

我在寻找如何翻译规则教程,但找不到。我如何创建该规则nftables?或者语法是一样的吗?

答案1

来自 nftables维基百科

自 2018 年 6 月以来,旧的 xtables/setsockopt 工具被视为遗留工具。不过,nf_tables 内核后端支持使用 iptables/ip6tables/arptables/ebtables 旧语法。 Legacy xtables 工具 wiki 页面对此进行了更详细的描述。

您可以使用iptables-nft以下方法来实现您的目标:

iptables-nft -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT

输入后,iptabels-nft-save将应用您的规则。您可以通过以下方式确认 nftables 中是否存在此规则:

nft list ruleset

你必须看到这样的东西:

nft list ruleset                 
table ip filter {
        chain INPUT {
                type filter hook input priority filter; policy accept;
                iifname "eth0" ip saddr 192.168.178.20 tcp dport 8201 counter packets 0 bytes 0 reject
        }
}

此外,您可以使用以下语法直接翻译您的规则:

iptables-translate -I INPUT 1 -i eth0 -p tcp -s 192.168.178.20 --dport 8201 -j REJECT

这将为您提供以下输出:

nft insert rule ip filter INPUT iifname "eth0" ip saddr 192.168.178.20 tcp dport 8201 counter reject

另外,您可以保存所有 iptables 规则iptables-save > save.txt,然后使用它iptables-restore-translate -f save.txt来获取翻译后的规则。

看看我自己的问题几个月前进行进一步解释。

相关内容