WEB开发网
开发学院网络安全防火墙 iptables的状态检测机制 阅读

iptables的状态检测机制

 2006-04-03 12:37:11 来源:WEB开发网   
核心提示: cp 6 431995 ESTABLISHED src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 [ASSURED]

cp 6 431995 ESTABLISHED src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 [ASSURED] use=1

2.3.2.透视状态表

上面,我们涉及了很多CP连接的状态。现在,我们分析一下TCP连接的状态检测。实际上,状态表只知道NEW、ESTABLISHED、RELATED和INVALID。

要注意:状态检测的状态不等于TCP状态。当一个SYN分组的响应SYN+ACK分组到达,Netfilter的状态检测模块就会认为连接已经建立。但是,这时还没有完成三次握手,因此TCP连接还没有建立。

另外,包过滤规则不能删除状态表中的表项,只有连接超时,对应的状态表项才会被删除。ACK分组能够建立一个NEW状态表项。向防火墙之后一台并不存在主机发送ACK分组,并不会返回RST分组,可以证明这个结论。因此,你需要使用以下的规则明确新的TCP连接应该是SYN分组建立的:

iptables -A INPUT -p tcp !--syn -m state --state NEW -j DROP

这样可以阻止空会话的继续进行。

2.3.3.超时

所谓状态表项的超时值是指每个表项存在的最大时间,这些超时值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中设置。以下是相关的代码:

static unsigned long tcp_timeouts[]

= { 30 MINS, /* TCP_CONNTRACK_NONE, */

5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */

2 MINS, /* TCP_CONNTRACK_SYN_SENT, */

60 SECS, /* TCP_CONNTRACK_SYN_RECV, */

2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */

2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */

10 SECS, /* TCP_CONNTRACK_CLOSE, */

上一页  1 2 3 4 5 6 7 8  下一页

Tags:iptables 状态 检测

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接