2 zoombinde zoombinde 于 2016.01.28 18:02 提问

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   Ds   Rxr 2016.01.28 21:33

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

zoombinde
zoombinde   2016.01.29 12: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无法匹配到这台规则,就被拦了。

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iptables 禁止外网访问
4种状态 new established related invalid   NEW ( a连接b 在b没有回复前 都被称为NEW包)     ESTABLISHED ( a和b 连接成功 只有一个连接时 称为ESTABLISHED状态 ) a和b一旦连接看到两个方向上都有通信流,与此附加相关的其它包都被看作处于 ESTABLISHED
iptables nat-让linux做为路由器,实现局域网访问外网
这个东西必须学会,真他妈的搞死我了 2013.5.15 1. 环境: ubuntu pc一台,两个网卡: eth0:    ip 10.3.1.100    gateway 10.3.1.12   dns 10.3.1.2 eth1:   ip 192.168.1.3 windows pc一台, ip 192.168.1.4   2. ubuntu pc的eth0
linux下iptables/netfilter搭建DMZ[转]
防守在网络安全中的重要性不必多说。保护网络最常见的方法就是使用防火墙。防火墙作为网络的第一道防线,通常放置在外网和需要保护的网络之间。最简单的情况是直接将防火墙放置在外网和企业网络之间,所有流入企业网络的数据流量都将通过防火墙,使企业的所有客户机及服务器都处于防火墙的保护下。这对
Linux通过防火墙iptables禁止指定IP访问服务器
修改vim /etc/sysconfig/iptables #禁止104IP访问80端口服务:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -s 10.20.135.104 -j DROP #开放所有-A RH-Firewall-1-INPUT -m state --st
Linux下IPTABLES防火墙的设定
安装linux后(防火墙是开启状态),需要检查防火墙端口 1.iptables防火墙启动和停止 启动iptables防火墙时命令行输入 #service iptables start [root@host.jefflei.com ~]# service iptables start 应用 iptables 防火墙规则:
Linux 下 iptables 防火墙管理服务设置
Linux 下 iptables 防火墙管理服务设置 iptables iptables是linux系统中管理防火墙的工具(内核版本为2.4及以上,在低于2.4版本的LINUX系统中,用的不是iptables) iptables本身不是防火墙。 通过iptables可以建立、删除、修改、保存(导出)、导入防火墙策略。 iptables 的三表五链 预设的情況下, Li...
Linux下iptables端口转发实现跳转访问数据库应用场景:假设有A、B、C三台设备,A<
Linux下iptables端口转发实现跳转访问数据库   应用场景:   假设有A、B、C三台设备,AB可以互相访问,BC可以互相访问,A和C不能直接访问,在C上安装了Oracle数据库,如何实现A可以访问C的数据库呢?   基本思路:   第一反应是在B上搭建个代理,A配置访问代理后,可以通过B跳转访问C,但是平时连接Oracle用的客户端是PLSQL,从我抓包的情况看
IPTABLES 允许PING 出,但不允许PING进;允许DNS;允许25出【备忘】
要求:        1、可以PING出去,但不允许PING进来        2、要求能发邮件。   解决思路:        涉及到25和DNS,ICMP协议问题   条件:假设INPUT链默认策略ACCEPT 只需在/etc/sysconfig/iptables不添加如下策略即可: -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCE
Linux服务器禁止其他主机ping
在对服务器日常的网络维护和使用过程中,ping命令十分常用,它所使用的是ICMP协议,我们经常为了保护服务器而禁止ICMP协议,从而使其他客户端通过ping命令检测时,服务器是不会再做出任何响应,客户端提示请求超时。
iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链
一、iptables 删除现有规则 iptables -F (OR) iptables --flush 设置默认链策略 iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。默认的链策略是ACCEPT,你可以将它们设置成DROP。 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P O