![尝试启动 iptables 时出错](https://linux22.com/image/544051/%E5%B0%9D%E8%AF%95%E5%90%AF%E5%8A%A8%20iptables%20%E6%97%B6%E5%87%BA%E9%94%99.png)
我尝试安装 vsftpd 并将此行添加到我的 iptables 中:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
但是,当我启动 iptables 时,出现以下错误:
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: mangle filter nat [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: iptables-restore: line 1 failed [FAILED]
文件中只有上面这一行/etc/sysconfig/iptables
——我做错了什么?
答案1
您的问题是该RH-Firewall-1-INPUT
链不是标准的,因此您必须创建它。在 iptables 配置中只有一行也不是理想的选择。一个相当基本的方法/etc/sysconfig/iptables
是
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [486:51620]
: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 -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
您应该将您的规则添加到上述 REJECT 行之前。