Iptables

將防火牆規則從 iptables 轉換為 nftables

  • October 22, 2022

我有這個規則iptables

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

我一直在尋找如何翻譯規則教程但找不到它們。如何創建該規則nftables?還是語法相同?

來自 nftables維基

自 2018 年 6 月以來,舊的 xtables/setsockopt 工具被視為遺留工具。但是,支持將 iptables/ip6tables/arptables/ebtables 舊語法與 nf_tables 核心後端一起使用。這在 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獲取已翻譯的規則。

看看幾個月前我自己的問題以獲得進一步的解釋。

引用自:https://unix.stackexchange.com/questions/722007