配置 iptables 时出现“错误参数‘NEW’”

配置 iptables 时出现“错误参数‘NEW’”

在 Debian 7.6 服务器上配置 iptables 以记录新的 TCP 连接时出现以下错误:

Bad argument `NEW'

Error occurred at line: ##

抛出错误的行格式如下:

-A INBOUND-ACCEPT -p tcp -m state --state NEW -j LOG --log-prefix ' NEW INBOUND TCP ' --log-level 4

我正在使用“iptables-restore”命令从文件中应用防火墙规则。我的配置有什么问题?如能得到任何帮助,我将不胜感激。

笔记INBOUND-ACCEPT 是我创建的一条链,用于方便记录已接受的数据包。该链中还有其他几行格式类似的行用于记录 UDP 和 ICMP,但修复这条规则的问题将使我能够修复规则文件中其他行的问题。

答案1

尝试将单引号改为双引号--log-prefix

答案2

我发现使用“-m state”和“--state STATE”已被弃用。我无法使用这些参数解决这个问题,但通过使用“-m conntrack”和“--ctstate STATE”代替前一个参数解决了这个问题。下面是我修复这个问题的最后一个命令:

-A INBOUND-ACCEPT -p tcp -m conntrack --ctstate NEW -j LOG --log-prefix " NEW INBOUND TCP " --log-level 4

编辑我的一位团队成员帮助我找到了一个解决方案,我没有注意到,但他不仅用 conntrack 等效项替换了“-m state”和“--state STATE”,还将单引号改为双引号。

答案3

在 RHEL 测试机上尝试了该命令。运行良好。

当我运行时iptables-save,命令用双引号保存了它:

# Generated by iptables-save v1.3.5 on Thu Mar 12 13:12:45 2015
*filter
:INPUT ACCEPT [399357208:150111383153]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [311789762:341416567394]
-A INBOUND-ACCEPT -p tcp -m state --state NEW -j LOG --log-prefix " NEW INBOOUND TCP "
COMMIT
# Completed on Thu Mar 12 13:12:45 2015

您可能想改用双引号。

相关内容