基于Linux系统的包过滤防火墙(2)
2006-04-03 12:36:56 来源:WEB开发网即每分钟所允许的最大包数量为限制速率(本例为3)加上当前的触发阀值burst数。在任何情况下,都可以保证3个包通过,触发阀值burst相当于是允许额外的包数量。
(4)基于状态的匹配扩展(连接跟踪)。
每个网络连接包括以下信息:源地址、目的地址、源端口、目的湍口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息称为状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙。它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。 iptables与ipchains的不同之处在于iptables可以使用连接状态信息,创建基于包的状态的规则匹配。
基于状态匹配创建规则的命令格式如下:
iptables -m state-state [!]state [,state,state,state]
其中,state表是一个用逗号分割的列表,用来指定的连接状态可以是如下的4种:
→NEW:该包想要开始一个连接(重新连接或将连接重定向)。
→RELATED:该包是属于某个已经建立连接所建立的新连接。例如:FTP的数据传输连接和控制连接之间就是RELATED关系。
→ESTABLISHED:该包属于某个已经建立的连接。
→INVALID:该包不匹配于任何连接,通常这些包会被DROP。
例如:
1)在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包。
#iptables -A INPUT -m state-state RELATED,ESTABLISHED
2)在INPUTP链添加一条规则,匹配所有从非eth0接口来的连接请求包。
#iptables -A INPUT -m state-state NEW -i ! eth0
更多精彩
赞助商链接