WEB开发网
开发学院网络安全防火墙 Linux平台上Iptables包过滤防火墙的实现 阅读

Linux平台上Iptables包过滤防火墙的实现

 2007-09-17 12:11:59 来源:WEB开发网   
核心提示: 6. 指定ip碎片 在TCP/IP通讯过程中,每一个网络接口都有一个最大传输单元(MTU),Linux平台上Iptables包过滤防火墙的实现(2),这个参数定义了可以通过的数据包的最大尺寸,如果一个数据包大于这个参数值时,我们将在下面讨论这个问题, 7. 指定非 可以在某些选项前加上!来

6. 指定ip碎片

在TCP/IP通讯过程中,每一个网络接口都有一个最大传输单元(MTU),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数个数据包(称之为ip碎片)来传输,而接收方则对这些ip碎片再进行重组以还原整个包。

但是再进行包过滤的时候,ip碎片会导致这样一个问题:当系统将大数据包划分成ip碎片传送时,第一个碎片含有完整的包头信息,但是后续的碎片只有包头的部分信息,比如源地址,目的地址。因此假如我们有这样一条规则:

iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 --dport 80 -j

ACCEPT

并且这时的FORWARD的策略(policy)为DROP时,系统只会让第一个ip碎片通过,而丢掉其余的ip碎片,因为第一个碎片含有完整的包头信息,可以满足该规则的条件,而余下的碎片因为包头信息不完整而无法满足规则定义的条件,因而无法通过。

我们可以通过--fragment/-f选项来指定第二个及其以后的ip碎片,比如以上面的例子为例,我们可以再加上这样一条规则来解决这个问题:

iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT

但是需要注意的是,现在已经有好多进行ip碎片攻击的实例(比如向Win98 NT4/SP5,6

Win2K发送大量的ip碎片进行DoS攻击),因此允许ip碎片通过是有安全隐患的,对于这一点我们可以采用iptables的匹配扩展来进行限制,但是这又会影响服务质量,我们将在下面讨论这个问题。

7. 指定非

可以在某些选项前加上!来表示非指定值,比如“-s -!

192.168.1.1/32”表示除了192.168.1.1以外的ip地址,“-p -!

上一页  1 2 3 4  下一页

Tags:Linux 平台 Iptables

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