操作系统:Red Hat Enterprise Linux Server release 6.2 (Santiago)
现状:主机A开启了iptables,只对filter表的INPUT链做了策略,OUT链默认是全放通。
问题:发现主机A访问防火墙外部的主机B,包可以到达主机B,但是主机B的回包被主机A的iptables拦截了,导致TCP连接无法建立。网上查找到一些方法,想利用iptables的状态来放通,配置了:
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
但是结果一样,回包还是被INPUT链拦截了。请问怎么解决啊?
检查下是不是配置了回环。
配置了回环是什么意思?能稍微讲解一下吗?
我想了一下-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT这条规则,
1、建立TCP连接的时候,主机A发送SYN包到主机B,此时在iptables看来,这个会话应该是NEW的状态;
2、主机B回应的ACK应该要通过iptables之后,会话的状态才能变成ESTABLISHED;
3、但是这条规则是放通ESTABLISHED,RELATED状态的连接,如果ACK已经被拦掉了,那这个会话的状态肯定不能ESTABLISHED;
4、所以主机B回应给主机A的ACK无法匹配到这台规则,就被拦了。
不知道这样说对不对?有没有高人指点?