1 引言
在众多的网络安全设施中,防火墙是行之有效的重要网络安全设备,通过对网络通信进行筛选屏蔽以防未经授权的访问进出计算机网络。防火墙是位于可信网络和不可信网络之间的一道安全屏障,其最核心的任务就是管理和控制进出网络的通信量,它可以截获中途传输的数据包并进行处理,然后与事先定义好的安全策略规则相比较,并最终决定转发或丢弃该数据包。传统的防火墙通常位于一段网络的边界,它可以很好的过滤外界用户对内部网络的访问,但对内部网络的攻击却无能为力。针对此问题近年来关于新型防火墙的研究有很多,如分布式防火墙系统,嵌入式防火墙系统等。这些系统的目的是将防火墙的边界延伸,使其能够遍布网络的每一个终端设备,构建全方位的安全防护网络。
现有防火墙系统大多是针对于IPv4开发的,由于IPv4地址空间不足,且安全性较差,现有网络升级到IPv6是大势所趋。IPv6 作为下一代网络的基础以其海量的地址空间和较强的安全特性得到广泛的认可,因此研究支持IPv6协议的防火墙是很有必要的。
以Intel Xscale IXP425 为核心处理器设计的嵌入式IPv6 防火墙,较好的实现了对网络中的数据包进行动态过滤。但其成本较高,且IXP425 强劲的网络处理性能在网络终端的应用中无法得以完全发挥。
基于U盘的嵌入式防火墙使用方便,设计新颖,但其需要依附于x86 电脑硬件平台,且U盘的可靠性较差,不适于长期使用。
通用ARM 处理器有较高的性价比和较多的软件支持,已广泛应用于生产生活的各个领域。本文通过对IPv6协议、IPv6安全机制和防火墙技术等方面的分析和研究,结合现有防火墙的特点,设计并实现了一个基于S3C2440的嵌入式IPv6 防火墙系统。下面从硬件设计、软件设计和核心模块设计几个方面介绍该基于S3C2440的嵌入式IPv6防火墙。
2 嵌入式IPv6防火墙的硬件设计
嵌入式IPv6防火墙的硬件设计如图1所示,其主控芯片采用三星公司的32 位嵌入式处理器S3C2440.该处理器以ARM920T RISC 为核心,标准工作频率为400MHz(最高工作频率:533MHZ),运算能力为450MIPS,有强劲的处理能力。
图1 嵌入式IPv6防火墙硬件框图
系统的存储单元主要包括SDRAM 存储器和Flash存储器。SDRAM为系统程序的运行提供内存空间,本系统采用两片HY57V561620FTP-H(32M)并联,容量可达64MB.Flash用来存储程序,Flash分为NOR型和NAND型2种。NOR型Flash工艺复杂,成本较高,其优点是片内可执行应用程序,多用于存储系统的Bootloader 引导程序。NAND 型Flash 具有极高的存储密度和较快的写入和擦除速度且成本较低,适用于存储大容量数据和文件。考虑到S3C2440支持NAND Flash 启动引导,故本系统选用K9F1208U0M-YCB0(64MB)的NAND型Flash作为系统的Flash存储器。
系统的以太网接口单元采用2 颗10M/100M 自适应以太网控制器DM9000A.DM9000A 芯片是DEVICOM 公司研发的一款低功耗,高度集成,成本较低的单芯片快速以太网芯片,在嵌入式领域中使用非常广泛。它集成了物理层接口(PHY)、以太网媒体介质访问控制器(MAC)和外部处理器总线接口等。3.3V的工作电压,降低了系统的功耗。DM9000A 的高度集成简化了系统以太网电路的硬件设计,特别适合作为嵌入式IPv6防火墙的网络接口。
3 嵌入式IPv6防火墙的软件设计
嵌入式IPv6 防火墙系统的软件编写采用了模块化程序设计的方法。模块化编程有利于程序设计任务的划分,使程序易于编写和调试,便于检验和维护。
本系统将启动代码(Bootloader),Linux 操作系统(网卡驱动、协议栈),防火墙模块(智能包过滤,状态跟踪等)和WEB管理模块(Boa服务器)都编写成独立模块。
系统软件层次结构如图2所示。
图2 嵌入式IPv6防火墙软件层次结构图。
第一层:启动代码(Bootloader)。它是芯片复位后进入操作系统之前执行的一段代码,主要是为操作系统的启动提供基本的运行环境,如初始化CPU、初始化存储器系统等。本系统选用U-Boot 作为系统的Bootloader.
第二层:Linux 操作系统,屏蔽了对底层硬件的具体操作,为上层应用提供了丰富的支持,包括底层设备驱动,网卡驱动和网络协议栈等。在Linux操作系统下,开发者只需关注于应用软件编程,大大节省了系统的开发时间。
第三层:防火墙模块(智能包过滤,状态跟踪等),该模块是嵌入式防火墙系统的核心,其包括动态NAT 模块:负责对进出防火墙的数据包进行地址翻译;状态跟踪模块:维护网络的会话连接信息,协助智能包过滤模块进行连接状态的跟踪,是实现状态检测包过滤(动态包过滤)的关键模块;智能包过滤模块:根据访问控制表(ACL)对进出网络的数据包进行过滤,并对过滤规则进行统计,记忆和决策,动态优化过滤规则优先级列表,实现高速高效的包过滤处理功能。
第四层:WEB管理模块,以CGI语言为基础,构建Boa服务器平台。通过该模块用户可以方便地查看防火墙日志,添加或修改过滤规则,调整过滤规则的优先级,监控防火墙网络状态等。
4 防火墙核心模块设计
一个防火墙能否起到较好的过滤效果关键在于防火墙的核心过滤模块设计。本防火墙的核心过滤模块整体工作流程如图3所示。
图3 嵌入式IPv6防火墙工作流程图。
嵌入式IPv6防火墙的工作流程:
(1) 当IPv6 数据包通过网络接口进入防火墙之后,首先将经过动态NAT模块进行网络地址翻译,其目的是将外部公网IP与内部私网IP相互映射。
(2) 在完成动态NAT 之后,防火墙会遍历连接状态跟踪信息表判断该数据包是否属于一个已经存在连接。此连接状态跟踪信息表记录着已存在连接的源IP 地址、目的IP 地址、传输层的源端口号、目的端口和TCP 序列号等,通过这些信息防火墙可以高效快速的识别出该数据包是否属于一个已经存在的连接。
(3) 如果该数据包不属于一个已经存在的连接,系统会调用智能数据包过滤规则集,并逐条遍历整个规则集。与此同时防火墙会动态地建立并更新过滤规则匹配信息表,根据该信息表,系统采用统计、记忆、概率和决策的智能方法对数据进行识别,动态地优化过滤规则优先级。智能的数据识别方法,消除了匹配检查所需要的海量计算,高效发现网络行为的特征值,直接进行访问控制,由于这些方法多是人工智能学科采用的方法,因此又称为智能访问控制技术。
(4) 如果该数据包通过了过滤规则集的审查,或者该数据包属于一个已经存在的连接,防火墙会对数据包是否含有特定内容进行检测,此时防火墙仅仅对数据包的关键信息进行检测,因此大大加快了检测的效率和速度。
(5) 如果该数据包未能通过状态跟踪安全策略,或者未能通过智能包过滤规则集,防火墙会拒绝或者丢弃该数据包,并进行日志记录。
(6) 在数据包通过了上述的过滤和审查后,防火墙就会将该数据包转发到最终的目的地址,并且防火墙会在其连接状态跟踪信息表中为此次会话创建或者更新一个连接信息。防火墙将会使用这个连接项对返回的数据包进行过滤。
5 结束语
本文对防火墙技术做了深入研究,设计了基于S3C2440 处理器的嵌入式IPv6 防火墙。该防火墙实现了支持IPv6 协议的状态跟踪与智能包过滤相结合的动态包过滤。并成功搭建了远程WEB 管理平台,方便地管理过滤规则、防火墙日志和网络状态等。随着IPv6 网络的逐渐推广,包括防火墙在内的网络设备对IPv6网络的支持将成为必然趋势。因此基于ARM的嵌入式IPv6防火墙的应用前景也会越来越广阔。
相关文章