免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2067 | 回复: 5
打印 上一主题 下一主题

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-28 10:26 |只看该作者 |倒序浏览
争对IP碎片,通常的理解是将一个过大的UDP或者ICMP包(大于1472),在通过IP层传递到数据链路层的时候,因为大于MTU,比如以太网的1500(这个1500是IP首部加UDP首部在加数据的总大小),从而在IP层上将上层传来的数据分成N份,每份分别封装在一个IP头中进行传递。这时有多个IP数据包承载一个UDP或者ICMP的数据报,这些IP包拥有相同的标识数字,并且除了最后一个分片MF标志字段为0外其它的分片MF标志字段均为1。因为上层数据被分片,这时除了第一个分片的IP数据字段中包含了上层数据的信息(因为UDP或者ICMP头部只在第一个分片中),所以后续的分片就不在包含上层的信息。
  抱歉说了这么多废话,这些是我对IP碎片的理解,也不晓得有没有错,如果有错误那我想不通就很正常了。 :wink:
   以下是我的问题了。先构建一个网络路由:三台机子,A,B,C,其中B装RH8,充当路由器和包过滤防火墙,分别连接两个主机A,B,均安装2000,A的地址是192.168.0.1,B是192.168.1.1。环境按照我对IP碎片的理解,那么就有这么个问题。除了第一片的其它分片不包含上层信息,那么如果我刻意发送大的报文(比如从192.168.0.1 ping 192.168.1.1  -l 65535 ),那么这个报文将被分片,如果这些IP碎片在通过包过滤防火墙的时候,如果不设置允许IP碎片通过,(比如iptables -A FORWARD -p icmp --icmp-type 8 -s 192.168.0.1 -d 192.168.1.1 -j ACCEPT;iptables -A FORWARD -m -state --state ESTABLISHED,RELATED -j ACCEPT;iptables -P FORWARD DROP)那么就只有第一片能够通过,因为其包含了完整的上层信息,说明这个包是从192.168.0.1到192.168.1.1的icmp request包,即icmp类型8 ,而后续的包不包含这个信息,过应该被过滤。这时后通过的第一个包到到C,因为是分片的包,所以C将其缓存并等待后续的包,但后续的包以被过滤,所以当等待一段时间后,超时,这时候C会将包丢弃,故A不会得到C得响应,应该得到timed out的数据显示。
   如果要让碎片能够通过,可以在iptables 中加上-f的选项,让后续包通过,这时应该得到响应。
   以上是我根据理论推出的。但是实际试验中,我发现没有允许碎片的时候A依然可以得到C的响应,所以万分疑惑。希望各位大虾指点。小弟是网络的初学者,希望得到大家的帮助。

论坛徽章:
0
2 [报告]
发表于 2003-06-16 21:37 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

不好意思 ,上面有点地方错了
比如从192.168.0.1 ping 192.168.1.1 -l 65535
2000中应该是最大65500

论坛徽章:
0
3 [报告]
发表于 2003-06-16 22:36 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

呵呵,我来看看。

我做了一下实验,把你这个实验简化了一下。
就2机器,没有用FORWARD,用的INPUT。
实验结果如下。

C:\>;ping -l 1472 192.168.0.1

Pinging 192.168.0.1 with 1472 bytes of data:

Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64

Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms



C:\>;ping -l 1473 192.168.0.1

Pinging 192.168.0.1 with 1472 bytes of data:

Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64
Reply from 192.168.0.1: bytes=1472 time<10ms TTL=64

Ping statistics for 192.168.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms


我感觉你的理论里面没有问题,就看
iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.0.116 -d 192.168.0.1 -j ACCEPT
是不是有特殊的地方了。

论坛徽章:
0
4 [报告]
发表于 2003-06-17 00:58 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

补充一下:
你的iptables -A FORWARD -m -state --state ESTABLISHED,RELATED -j ACCEPT
应该是iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

论坛徽章:
0
5 [报告]
发表于 2003-06-17 11:26 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

在C上面抓包看看它到底收到了几个包,多大。

论坛徽章:
0
6 [报告]
发表于 2003-06-17 13:54 |只看该作者

请教大虾关于IP碎片通过包过滤防火墙的问题。希望斑竹置顶。谢谢

C:\>;ping -l 1472 www.cisco.com

Pinging www.cisco.com [198.133.219.25] with 1472 bytes of data:

Reply from 198.133.219.25: bytes=1472 time=1042ms TTL=240
Reply from 198.133.219.25: bytes=1472 time=1011ms TTL=240
Reply from 198.133.219.25: bytes=1472 time=1011ms TTL=240
Reply from 198.133.219.25: bytes=1472 time=1022ms TTL=240

Ping statistics for 198.133.219.25:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1011ms, Maximum =  1042ms, Average =  1021ms

C:\>;ping -l 1473 www.cisco.com

Pinging www.cisco.com [198.133.219.25] with 1473 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 198.133.219.25:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms


谁能用iptables或者ipchains模拟一下这个效果?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP