防火墙对于一个网格的作用就不用多说了,网络的第一道防线就是防火墙,它用于防御公共互联网攻击,限制本地用户的公共互联网访问,随着IPv6的出现,对防火墙有了新的要求,虽然IPv6和IPv4各自提供的服务非常相似,但是这两种协议之间存在一些细微差别,这对防火墙设备和操作会影响很大。
一、IPv6的一个主要变化是采用固定长度的协议头,而不像IPv4那样采用可变长度协议头。任何必要的选择都必须加到后续的扩展头中,扩展头位于固定的IPv6头和封装的IPv6上层协议之间。它会根据处理选项的不同系统而采用不同的扩展头。例如,需要在目标主机中处理的选项会包含在一个“目标选项”头信息中,而由路由器处理的选项则会包含在一个“跳间选项”头信息中。理论上,这至少能够让路由器和主机解析、处理归它们的选项——而IPv4则不同,处理数据包的所有节点必须解析所有的选项。
二、这个头结构决定了IPv6头信息链:多个头信息会被依次链接在一起,首先是IPv6头,最后是上层协议。每一个扩展头都包含具体的头长度和下一个头链接的头信息类型。
因此,任何IPv6流都会采用完整的IPv6头信息链,然后处理它需要的头信息,分片头是其中一种特殊类型的扩展头,它包含了实现IPv6分片所需要的机制。
与IPv4头不同,IPv6不是将所有分片相关信息保存在固定的IPv6头中,而是将这些信息保存在一个可选的分片头中。因此,执行分片的主机只需要在IPv6头信息链中插入一个分片头信息,再添加需要分片的原始数据包。
三、任何需要获取上层信息(如TCP端口号)的系统,都需要处理整个IPv6头信息链。而且,由于当前的协议标准支持任意数量的扩展头,包括同一种扩展头的多个实例,因此它会对防火墙等设备造成多种影响,防火墙需要解析多个扩展头,才能够执行深度数据包检测(DPI),它可能会降低WAN性能,引发拒绝服务(DoS)攻击,或者防火墙被绕过。
四、由于当前的协议规范支持任意数量的扩展头,包括同一种扩展头类型的多个实例,因此防火墙必须能够细致地处理包括异常的多IPv6扩展头信息的数据包。而这可能被一些攻击者利用,他们可能故意在数据包中加入大量的扩展头,使防火墙在处理上述数据包时浪费过多资源。
最终,这可能会引起防火墙性能下降,或者造成防火墙本身出现DoS问题。此外,有一些性能不佳的防火墙在应用过滤策略时,可能无法处理整个IPv6头信息链,从而可能让一些攻击者利用扩展头威胁相应的防火墙。
五、IPv6分片也可能被恶意利用,方法与IPv4的类似。例如,为了破坏防火墙的过滤策略,攻击者可能会发送一些重叠的分片,从而影响目标主机的分片重组过程。
在IPv6中,这个问题更为严重,因为多个IPv6扩展头和分片的组合可能产生一些错误分片,尽管它们的数据包大小是“正常的”,但是它们丢失了一些实施过滤策略通常需要的基本信息,如TCP端口号。即,数据包的第一个分片可能包含很多IPv6选项,以致上层协议头可能属于另一个分片,而不是第一个分片。
六、IPv6转换/共存技术还给IPv6防火墙带来另一个问题。大多数转换技术都使用某种通道机制,它在一种网络协议(通常是IPv4)中封装另一种网络层协议(通常是IPv6)。这会对防火墙的安全性造成很多影响,防火墙可能无法识别特定的转换技术,也可能无法应用一些原生IPv6流量支持的过滤策略。例如,在使用原生IPv4或原生IPv6时,一个网站可以阻挡通向TCP端口25的数据包,但是在部署了 Teredo 等转换机制后,它可能无法阻挡这些数据包。
七、转换技术可能会加剧上述问题,因为不仅封装的流量可能使用组合的IPv6扩展头和分片,其他向外发送的数据包(通常是IPv4)也可能是分片的,因此这都会大大增加最终流量的复杂性。这种复杂性不仅会降低网络流量传输速度,更严重的是,它还可能影响防火墙的过滤策略。例如,防火墙可能无法处理整个头信息链,从而无法找到TCP分片。
为了应用IPv6数据包过滤策略,防火墙至少必须支持整个IPv6头信息链的处理,理想情况下,这些防火墙还应该支持IPv6转换技术,这样应用于原生IPv6流量的过滤策略可以同样应用到转换流量上。
也就是说,防火墙应该有一个“默认拒绝”策略,这样防火墙就能够阻挡您不需要的流量,如转换流量。