zoombinde
zoombinde
2016-01-28 10:02
采纳率: 0%
浏览 2.2k

linux主机配置了iptables,主机主动访问外部主机没问题,但是回包被iptables拦截了

操作系统: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链拦截了。请问怎么解决啊?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • devmiao
    devmiao 2016-01-28 13:33

    检查下是不是配置了回环。

    点赞 评论
  • zoombinde
    zoombinde 2016-01-29 04:52

    配置了回环是什么意思?能稍微讲解一下吗?

    我想了一下-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无法匹配到这台规则,就被拦了。

    不知道这样说对不对?有没有高人指点?

    点赞 评论

相关推荐