Centos5.8 iptables管理
使用第三方提供的Centos5.8 vmx安装的虚拟机实例, 在安装Tomcat时发现启动后8080端口无法访问, 先检查是否selinux作了限制
# 查看selinux状态
sestatus
getenforce
# 查看selinux对端口的限制情况
semanage port -l
# 其中8080端口是否打开:
semanage port -l|grep 8080
排除了selinux的问题后, 发现是iptables引起. 查询发现, centos5.x里, 使用了一个 RH-Firewall-1-INPUT 的target, 所有INPUT和FORWARD都会target过去,
-A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT
就是这个RH-Firewall-1-INPUT导致了8080端口无法访问.
据说在Centos6.x 里面 RH-Firewall-1-INPUT 已经被废除. 因为是测试环境, 所以直接清空保存了:
iptables -F iptables -X iptables -Z
# 查看, -n参数将IP数字化,-v输出更多信息,包括in out网口
iptables -L -n -v
# 保存
service iptables save
# 重启
service iptables start
后查看是否生效
Update 20150711
在Centos6.3里, 默认只打开了22端口, 其他的端口都需要到iptables里显式打开:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在22端口的规则下面, 照抄即可, 例如开放8080端口的通信
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT