【问题标题】:failed to apply firewall rules with iptables-restore无法使用 iptables-restore 应用防火墙规则
【发布时间】:2014-09-28 10:57:38
【问题描述】:

以下是我的iptables的配置,

[root@fabulous ~]# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Mon Dec 23 15:55:09 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

但是,当我重新启动它时,我收到如下错误,作为通知,失败的行是“COMMIT”。谁能帮忙指出错误在哪里?提前致谢。

[root@fabulous ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore: line 20 failed
                                                           [FAILED]

【问题讨论】:

    标签: linux shell linux-kernel iptables


    【解决方案1】:

    我想说-m TCP 在这一行中丢失了:

    -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
    

    您通常可以通过iptables-restore获得一些自己应用规则的线索:

    iptables-restore < /etc/sysconfig/iptables
    

    编辑:发现它,第 11 行

    -A RH-Firewall-1-INPUT -p udp -m tcp --dport 53 -j ACCEPT
    

    您正在为 tcp 模块指定 udp proto。你的意思可能是:

    -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
    

    【讨论】:

    • 嗨@leucos,当我更新-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT行时,它再次失败并显示相同的错误消息
    【解决方案2】:

    我遇到了同样的问题,因为我在 COMMIT 之前有一个空格。你必须删除那个空间,一切都会完美地工作(我希望你)。埃利亚斯·米萨维。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,因为

      1. 我错过了前 7 行(在我第一次接受之前)
      2. 因为我必须在我上次的 ACCEPT 和 COMMIT 之间添加一个空行

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 2013-09-05
        • 1970-01-01
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        相关资源
        最近更新 更多