以 ACCEPT 或 DROP 结尾的 IPTABLES 命令在服务防火墙重启时失败

以 ACCEPT 或 DROP 结尾的 IPTABLES 命令在服务防火墙重启时失败

我有一台 CENTOS Linux VPS。我的 IPTABLES 脚本中有以下内容,用于在 VPN 重启时运行,但当我执行service firewall restart

我手动运行了下面的每个命令,它们都有效。根据 Host Gator 的说法,为了让 IPTABLES 规则持续存在,我需要将它们放在

/etc/firewall/INCLUDE

文件,因此我在文件中插入了命令,但是当我执行以 ACCEPT 或 DROP 结尾的命令时会出现错误service firewall restart

这是我的包含文件:

  1 iptables -A INPUT -p tcp -m tcp --dport 3000 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
  2 iptables -A INPUT -i lo -j ACCEPT
  3 iptables -A OUTPUT -o lo -j ACCEPT
  4 iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
  5 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  6 iptables -A INPUT -p tcp --dport 5622  -m state --state NEW -j ACCEPT
  7 iptables -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT
  8 iptables -A INPUT -p tcp --dport 4643  -m state --state NEW -j ACCEPT
  9 iptables -A INPUT -p tcp --dport 22  -m state --state NEW -j ACCEPT
 10 iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
 11 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
 12 iptables -I INPUT -p tcp --dport 3000 --syn -j ACCEPT
 13 iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3000
 14 iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
 15 iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
 16 iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
 17 iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
 18 iptables -A INPUT -j DROP -p ALL

错误:

Running file /etc/firewall/INCLUDE
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.7: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.

我该如何修复该命令以便重新启动防火墙时它们被接受?

答案1

我想我已经找到答案了:每个换行符后都有 ^M 字符。我相信如果我删除它们,命令就会起作用。我正在使用 VIM,如果我通过执行 ':e ++ff=unix' 在 vi​​m 中查看它们,它会在每个换行符后显示 '^M'。

相关内容