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

iptables的状态检测机制

 2006-04-03 12:37:11 来源:WEB开发网   
核心提示: 2.3.TCP连接 一个TCP连接是通过三次握手的方式完成的,首先,iptables的状态检测机制(4),客户程序发出一个同步请求(发出一个SYN分组);接着,服务器端回应一个SYN|ACK分组;最后返回一个ACK分组,就把这个连接的状态变为ESTABLISHED,并且使用ASSURED标

2.3.TCP连接

一个TCP连接是通过三次握手的方式完成的。首先,客户程序发出一个同步请求(发出一个SYN分组);接着,服务器端回应一个SYN|ACK分组;最后返回一个ACK分组,连接完成。整个过程如下所示:

Client Server

SYN --->

<--- SYN+ACK

ACK --->

<--- ACK

ACK --->

.........

.........

SYN和ACK是由TCP分组头的标志决定的。在每个TCP分组头还有32位的序列号和应答号用于跟踪会话。

为了跟踪一个TCP连接的状态,你需要使用下面这样的规则:

iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

2.3.1.连接建立过程中状态表的变化

下面,我们详细讨论在连接建立的每个阶段中,状态表发生的变化:

一旦一个初始SYN分组进入OUTPUT链,并且输出规则允许这个分组建立一个新的连接,状态表的相关表项将如下所示:

cp 6 119 SYN_SENT src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 [UNREPLIED] src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1

其中,TCP连接状态是SYN_SENT,连接被标记为UNREPLIED。

现在,我们等待SYN+ACK分组的响应。一旦得到响应,这个TCP连接表项就变为:

tcp 6 57 SYN_RECV 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 use=1

连接的状态变为SYN_RECV,UNREPLIED标志被清除。

现在我们需要等待完成握手的ACK分组。ACK分组到达后,我们首先对其序列号进行一些检查,如果正确,就把这个连接的状态变为ESTABLISHED,并且使用ASSURED标记这个连接。这时,这个连接的状态如下所示:

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

Tags:iptables 状态 检测

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