在CentOS 6.5中打开端口80


14

我试图在虚拟机上的CentOS 6.5中打开端口80,以便可以从桌面浏览器访问apache。

在此处输入图片说明

如果您看一下上面的屏幕截图...。我已经在蓝色箭头之前添加了这一行,如http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80 / 现在,当我在浏览器中输入IP地址时,我确实获得了apache测试页,但是当重新启动iptables时,当CentOS尝试应用新规则时,我仍然收到“ FAILED”。

有谁知道解决方案吗?还是我需要忽略失败?

Answers:


28

无需手动键入规则,您可以iptables将规则添加到适当的链中,然后保存它们。这将允许您实时调试规则,确认它们正确无误,而不必像看起来那样将其添加到文件中。

要打开端口80,请执行以下操作:

$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save

最后一条命令将保存添加的规则。这是我用来打开网络流量端口的规则。

为什么您的规则导致了问题

如果您注意到要使用的规则:

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

有一个名为“ RH-Firewall-1-INPUT”的链。如果您没有此链,也没有该链与该INPUT链的链接,那么此规则将永远无法实现。该规则可能如下所示:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

或者您的INPUT链条应RH-Firewall-1-INPUT使用以下规则链接到该链条:

$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

注意:您可以使用此命令查看具有哪些链:

$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

同样,可能需要修改状态,以便也允许现有连接。

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

同样,当您使用-A开关时,您会将规则附加到chain INPUT。如果之前有其他规则正在阻止和/或干扰此规则的实现,则它将永远不会执行。因此,您可能希望通过插入而不是附加将其移至顶部,如下所示:

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

使用GUI

防火墙可能是复杂的野兽。因此,您可能想尝试使用TUI(TUI是终端的GUI)。

$ sudo system-config-firewall-tui

然后,您可以浏览各个屏幕的设置iptables规则。

            SS#1

            SS#2

参考文献


最后一条规则删除了我的iptables文件中的所有先前规则,而仅添加了上面的规则(sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT)。现在,我也无法再通过浏览器访问apache页面。
2014年

1
@ErikVandeVen-对不起,我没有说清楚。您所拥有的其他规则要么需要以相同的方式添加并保存(在萨姆时间),要么可以转到文件/etc/sysconfig/iptables并添加它们。您的原始条目应在此文件中/etc/sysconfig/iptables.save
slm

谢谢,我能够通过复制iptables.save来还原iptables。但是我仍然无法添加规则,而不会失败,并且无法同时在浏览器中打开apache测试页面。我先看一下riclags发布的教程,第一篇:)
Erik van de Ven

1
伙计,我完全不明白为什么这个答案还没有收到任何赞。优秀的详细答复。考虑我的一千个感谢。
萨米龙

1
那个防火墙GUI真是太好了,以前从未见过!
Matt Fletcher

0

出于相同的原因,我最近将CentOS 6.5安装为虚拟机,以用作虚拟Web服务器。无论如何,我遵循了CentOS Wiki上的非常详细的方法。然后,按照@slm的答案,我向其添加了端口80并使用进行了保存sudo /etc/init.d/iptables save

iptables -L -v 具有以下输出:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination

0

如果要编辑防火墙设置但不熟悉iptables,建议您使用system-config-firewall-tuiX system-config-firewall的GUI工具(如果没有X服务器)使用该工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.