基于S3C2440的嵌入式IPv6防火墙设计
段代码,主要是为操作系统的启动提供基本的运行环境,如初始化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防火墙的应用前景也会越来越广阔。
- 嵌入式Web服务器移植与测试(03-03)
- 基于OpenWrt的移动机器人系统设计(01-17)
- 基于S3C2440处理器Linux平台的物流配送系统设计(02-05)
- 基于嵌入式的杯突试验机测控系统设计与实现(02-12)
- 基于ARM的多路同步的A/D和D/A设计(06-29)
- S3C2440模拟IIC方式操作EEPROM(12-03)