为什么这些iptables规则会阻止http

时间:2014-07-10 23:02:46

标签: centos firewall iptables

我刚刚在新的CentOS 6.5安装上安装了apache。我在浏览器地址栏中输入了ip地址,但无法连接。然后我关闭了iptables,然后刷新了,这次我可以连接。

很明显,iptables阻止了http(端口80)流量。

所以我看了一下iptables规则(在新的Centos安装后不要记得):

[root@centos ~]# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

现在,我不是iptables专家,但我认为我已经足够理解这个简单的事情。但我很困惑,因为INPUT链中的第3行是这样的:

ACCEPT     all  --  anywhere             anywhere            

对于任何协议,从任何来源,到任何目的地,似乎都在说"

所以我希望我可以连接到网站(tcp,端口80)。但我不能。所以我一定误解了iptables的工作原理或者列表的含义。

有人可以解释为什么上述规则不允许传入的http连接吗?

1 个答案:

答案 0 :(得分:7)

我自己想通了。难怪我很困惑 - 上市并没有显示完整的故事。我使用-v(详细)选项再次尝试了它。

[root@centos ~]# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
81194  118M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere            
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    7   364 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
   21  2394 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 

特别是,它现在也显示了INTERFACE。第三条规则,我认为非常宽松,实际上根本不允许,因为它只适用于系统的内部环回地址。

因此,来自外部的HTTP请求将在以太网接口上接收,而不是环回,第3条规则不适用,因此唯一匹配的是最终的REJECT规则。

希望这会帮助别人不要像我一样困惑。