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

iptables的状态检测机制

 2006-04-03 12:37:11 来源:WEB开发网   
核心提示: 在主动模式下,客户端使用的数据传输端口是不固定的,iptables的状态检测机制(8),因此我们需要在规则中使用端口范围,由于客户端使用的端口都是大于1024的,需要使用如下iptables规则 iptables -A INPUT -p tcp --sport 21 -m state --

在主动模式下,客户端使用的数据传输端口是不固定的,因此我们需要在规则中使用端口范围。由于客户端使用的端口都是大于1024的,这并不会降低系统的安全性。

在iptables 中,有一个专门跟踪FTP状态的模块--ip_conntrack_ftp。这个模块能够识别出PORT命令,并从中提取端口号。这样,FTP数据传输连接就被归入RELATED状态,它和向外的FTP控制连接相关,因此我们不需要在INPUT链中使用NEW状态。下面的规则可以实现我们的意图:

iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISED,RELATED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISED -j ACCEPT

3.2.被动模式

和主动模式相反,在被动模式下,指定连接端口的PORT命令是服务器端发出的。FTP服务器通过PORT命令告诉客户端自己使用的FTP数据传输端口,然后等待客户端建立数据传输连接。在被动模式下,建立数据传输连接的方向和建立控制连接的方向是相同的。因此,被动模式具有比主动模式更好的安全性。

由于ip_conntrack_ftp模块能够从PORT命令提取端口,因此我们在OUTPUT链中也不必使用NEW状态,下面的规则可以实现对被动模式下的FTP状态检测:

iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

综合以上的分析,我们可以得到FTP连接的状态检测规则,对于主动模式的FTP,需要下面的iptables规则:

iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLESED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISED -j ACCEPT

iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISED,RELATED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISED -j ACCEPT

对于被动模式的FTP连接,需要使用如下iptables规则

iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLESED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISED -j ACCEPT

iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

本文中提到的状态检测,在iptables中实际叫作连接跟踪(Connection tracking),出于自己的习惯,我在本文中一律改为状态检测

上一页  3 4 5 6 7 8 

Tags:iptables 状态 检测

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