- 论坛徽章:
- 0
|
- 有时一个包太大,不可能适合所有线路。这样的话,包会被分成片,然后当作多个包发送。最终重组这些分片来重建整个包。
- 分片的问题是,被检查的初始片含有整个头部字段(IP+TCP,UDP和ICMP),但随后的包只有一部分头(没有附加协议字段的IP),因此,检查后面的分片的头部(就像有TCP、UDP和ICMP一样)是不可能的。
- 如果你在做NAT或连接追踪,那么所有分片在包过滤代码处理以前都会合并,所以你不需要为分片担心。
- 还请注意,到filter表中的INPUT链(或者任何由NF_IP_LOCAL_IN钩子程序钩入的表)的包实际上由核心IP栈片重组后到达。
- 否则,理解分片是如何被过滤规则处理的就非常重要了。任何过滤规则要求我们没有的信息,将被认为不匹配。这意味着(分片的)第一片像普通的包一样被处理。第二及后面的片则不会。因此,规则 -p TCP --sport www(指定源端口为'www')永远不会匹配一个分片(的包)(除了第一片),相反的规则 -p TCP --sport ! www也不会。
- 无论如何,你可以用'-f'(或'--fragment')标记指定专门处理第二及以后的分片的规则。当然也可以指定一个规则,让它不去匹配第二及以后的分片,在'-f'前加上'!'。
- 通常,让第二及以后的分片通过被认为是安全的,因为如果过滤处理了第一片,那么就无法在目标主机上进行重组。不过,已知的Bug是发送分片可能会轻易的让主机崩溃。你自己看着办吧。
复制代码
通过也不是,不通过又可能出错...究竟该如何? |
|