问题描述
开启并配置iptables后,发现NGINX服务访问不了了。查看NGINX日志报错连接超时,将防火墙策略清除后又可以正常访问了。selinux正确的配置了http端口。所以问题就出在防火墙策略上了。
未解决前的防火墙策略
[root@Rshine ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1400 119K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6722
55 6151 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
283 28599 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
76 4600 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
我的NGINX监听的端口是8443端口,这里明明已经开放了8443端口,但是还是无法访问。
解决问题后的防火墙策略
[root@Rshine ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
24 26944 ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
1400 119K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6722
55 6151 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
283 28599 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
76 4600 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
就增加了一条策略,就恢复正常访问了。
iptables -I INPUT -s 127.0.0.1 -j ACCEPT # 允许来自源地址127.0.0.1的访问
原因是我的nginx配置了"fastcgi_pass 127.0.0.1:9000;"最后一条规则阻止了来自127.0.0.1的访问。