Linux
以 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.
如何修復命令,以便在我重新啟動防火牆時接受它們?
我想我已經找到了答案:每個換行符後面都有 ^M 個字元。我相信如果我刪除它們,這些命令就會起作用。我正在使用 VIM,如果我通過執行 ‘:e ++ff=unix’ 在 vim 中查看它們,它會在每個換行符後顯示 ‘^M’。