我在我的Fedora盒子上安装了iptables。 我允许所有入站HTTPSstream量,所有出站stream量,并且我也有一个允许的相关规则。 不过,我看到在我的日志中删除条目是这样的:
stream量下降:SRC = XXXX DST = My_Server_IP DF PROTO = TCP SPT = 443 DPT = Random_High_Port
为什么我的既定/相关的规则没有select并允许? 我唯一的想法是,在收到这个回复之前,它已经超时了。 如果是这样的话,有没有人知道这个超时窗口是什么或者是否可以修改? 谢谢。
编辑:
这是一个完整的数据包
丢弃的stream量:IN = eth0 OUT = MAC = _____________ SRC = XXXX DST = YYYY LEN = 81 TOS = 0x00 PREC = 0x00 TTL = 46 ID = 11862 DF PROTO = TCP SPT = 443 DPT = 50680 WINDOW = 6235 RES = 0x00 ACK PSH FIN URGP = 0
这里是与这种情况有关的3个IP表规则
/ sbin / iptables -A INPUT -m状态–state ESTABLISHED,RELATED -j ACCEPT
/ sbin / iptables -A INPUT -p tcp -m state –state NEW –dport 443 -j ACCEPT
/ sbin / iptables -P OUTPUT ACCEPT
这应该是传入stream量有关的出站连接,因为来源是443.我只需要知道它为什么失败和/或什么时间是。
Netfilter已经从状态表中删除了连接。 /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_*中的超时之一已过期。 我猜这是nf_conntrack_tcp_timeout_last_ack 。
这里是一个场景:你的Web服务器发送一个包含一些数据和fin的最终数据包。 客户昏迷了30秒。 Netfilter从状态表中删除条目。 客户端唤醒并发送一个不属于跟踪连接一部分的fin ack。
我一直在Web服务器上看到这一点。 这是客户端问题。
如果要validation是否可以logging状态表( /proc/net/nf_conntrack )并将其与防火墙日志相关联。
编辑:我有方向相反,但这个概念适用。 在这种情况下,他的服务器正在传出https连接,所以它实际上是客户端,而远程Web服务器可能响应速度较慢。
规则
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
与它无关。 这是关于DST端口443,这是SPT 443。