如果 Debian buster/sid 规则文件中有 --multiport 选项,则 iptables-restore 会失败

如果 Debian buster/sid 规则文件中有 --multiport 选项,则 iptables-restore 会失败

我的/etc/iptables/rule.v4文件包含许多规则,下面是我看到问题的行

-A INPUT -p tcp -m multiport --dports 22 -j ACCEPT
-A INPUT -p udp -m multiport --dports 16384:32768 -j ACCEPT

当我尝试iptables-restore这样做时失败并出现以下错误

root@rs-dal:/etc/iptables# iptables-restore rules.q
iptables-restore v1.8.2 (nf_tables): multiport needs `-p tcp', `-p udp', `-p udplite', `-p sctp' or `-p dccp'
Error occurred at line: 26
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
root@rs-dal:/etc/iptables# 

为什么它失败了?,同样的规则已经成功地应用于Debian Jessie.

当我像下面这样改变规则时,它也起作用了。

-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p udp --dport 16384:32768 -j ACCEPT

我检查了iptables -L并成功应用了这些规则,如下所示

ACCEPT     udp  --  anywhere             anywhere             udp dpts:16384:32768
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

我当前拥有的规则是否是有效的语法?

以下是我的操作系统详细信息

root@rs-dal:/etc/iptables# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

答案1

nftables正如用户 AB 指出的那样,Buster 使用的 和之间存在不兼容问题。 保存要恢复的规则的iptables最佳方法是在兼容版本之间进行恢复。iptablesiptables-restore

删除有问题的行,并恢复规则:

iptables-restore < rules.q

将规则重新添加到您的配置并保存:

iptables -A INPUT -p tcp -m multiport --dports 22 -j ACCEPT
iptables-save > rules.q

现在再次尝试恢复:

iptables-restore < rules.q

用于iptables -L验证您的所有规则是否都已到位。

相关内容