1 引言
“流过滤”技术融合了包过滤和应用代理安全性和优点,克服了包过滤和应用代理的诸多缺陷,代表了一种全新的防火墙技术结构。在大家纷纷开始关注应用层安全的今天,“流过滤”技术架构更加显示了其前瞻性和先进性。经过近几年的不断完善和实际使用中的磨合,新产品的“流过滤”引擎已经相当成熟和完善,在性能和稳定性方面得到了大幅度的提升,使其能够满足关键业务领域的长期稳定运行的要求。但这都是针对IPv4防火墙的,随着IPv6网络[1]的普及,对基于流过滤技术的IPv6防火墙设计和分析则是一个新的研究热点。
2 流过滤技术研究
“流过滤”技术[2]是以状态检测包过滤的形态实现对应用层保护的一种防火墙过滤技术,基本原理是在状态检测包过滤的基础上,针对具体应用层协议采用专门设计的TCP/IP协议栈实现对链路层数据流在应用层重组并在此基础上进行过滤,以包过滤的形态提供应用层保护能力,使得规则匹配在防火墙内部由数据链路层直达应用层。
2.1 流过滤处理策略
在流过滤报文处理策略中,要对不同报文区别对待,一部分类型的报文使用流过滤技术,其它类型的报文使用包过滤技术,比如说ARP报文、UDP报文、非用来传输数据的TCP报文都使用包过滤技术,这些报文可根据MAC首部、IP首部、TCP首部进行判断。但判断用来传输数据的TCP报文中哪些使用流过滤技术哪些使用包过滤技术的判定依据是TCP报文中的首部端口号、某些标志字段及应用层协议首部某些字段。使用流过滤技术的报文称为关键报文,而其它的报文统称为非关键报文。
2.2 流过滤的处理步骤
当对关键报文应用流过滤技术处理时,流过滤技术逻辑上断开数据发送端与数据接受端之间的直接网络连接,即发送端与接受端之间在传输数据之前建立的网络连接仍然存在,但发送端与接受端之间的数据传输必须通过使用流过滤技术的防火墙中转。如图1所示。
图1 防火墙利用流过滤技术对关键报文进行处理的过程,按照时间先后顺序可分为三个步骤:
(1)对发送端发送应答报文,并将同一会话中的全部关键报文在应用层数据重组。
(2)按照流过滤规则对重组后的完整数据进行合法性检查,并做相应处理。
(3)对通过合法性检查的数据发送给接受端,并处理接受端发出的应答报文。
2.3 流过滤实现要点
(1)报文分类:首先利用报文信息判断第一个报文是否为关键报文,若是,记录下IPv6基本报头的流标识字段值。对于收到的第二个报文,先与第一个比较流标识字段值,若相等,则说明它们属于同一个会话,第二个报文也为关键报文;否则再利用报文信息判断是否为关键报文,若是,记录下流标识字段值。
(2)发送应答报文:关键在于应答报文中IP首部标识字段、TCP首部确认序号及IP首部、TCP首部校验和的计算。
(3)判断同一会话关键报文是否传输完毕:在同一会话中收到TCP首部FIN标志位为1的报文,即可确定传送传输完毕。
(4)重组关键报文:通过报文中TCP首部序号字段的值及应用数据的长度发现重复报文,并根据后发送报文的TCP首部序字段的值等于先发送报文TCP首部序号值加上应用层数据长度加1这条规则,排列好同一会话的所有报文。
(5)发送合法数据:需要发送数据时把原始报文按顺序发送给接受端。
3 IPv6防火墙系统的设计
3.1 体系结构
在IPv6网络通信中,数据流是以密文的形式在网络中传输,IPv6报文都是加密的,防火墙无法获得相关信息进行过滤,要么全部阻拦数据包则网络将不能进行通信,要么全部放行则容易受到攻击。为解决这一问题,本文将采用屏蔽子网防火墙系统结构[4],在此系统中的堡垒主机上实现流过滤技术。如图2所示。
图2 IPV6防火墙体系结构图
该系统层次结构示意图如图3所示。
图3 IPv6防火墙系统层次结构示意图