论文部分内容阅读
在计算机网络技术飞速发展的今天,网络安全问题日益突出,防火墙技术也越来越受到人们关注。在一些信息敏感场所,需要自行设计与开发符合特定需求的防火墙系统。而Linux提供了基于内核的Netfilter框架,具有通用性和可扩展性,使得开发人员可以结合不同的网络安全需求,设计并实现所需的防火墙系统。论文首先阐述了在Linux Netfilter框架上构建防火墙的基本原理,接着介绍了防火墙设计与实现中涉及的技术与理论基础,最后设计并实现了一个拥有包过滤、防常见DoS攻击、日志记录、事件通知、配置管理等功能的高性能防火墙系统HiPF(High Performance Firewall)。HiPF与传统防火墙相比,具有以下特色:1、传统Linux防火墙联动性较差,无法将内核态侦测到的事件通知用户态进程。HiPF实现了事件通知功能,防火墙在发现期望事件后,将消息反馈给用户态进程,以达到应急、报警、联动的目的。2、传统Linux防火墙缺乏对规则集的一致性诊断。规则集的非一致性有可能降低防火墙的安全性。HiPF提供对规则集的一致性诊断功能,提供最优的规则移除步骤,使得规则集满足一致性。3、传统Linux防火墙使用线性搜索算法实现数据包的分类,在庞大的规则集与大流量的情况下分类速率很低。大多数状态防火墙使用HASH算法实现高效分类,但是针对HASH算法缺陷的攻击会大大降低分类速率。HiPF使用了基于计算几何的GEM(Geometric Efficient Matching)算法,实现了在规则集庞大和高流量情况下,仍然保持极高的吞吐量。论文提出一种GEM数据结构的构造算法,实验证明该构造算法具有时间与空间上的可行性。论文介绍了测试环境的配置,开发了一个基于winpcap测试工具—NetTest,该工具可以根据配置文件灵活的发送数据包,具有较稳定的发送性能。最后使用NetTest测试GEM与线性搜索算法的性能,测试证明GEM算法具有较高的性能与实用价值。另外测试了事件通知功能,验证当防火墙受到攻击时可以正确执行响应命令,实现报警、与其它系统联动等功能。通过测试,证明了本防火墙达到了设计的目的。文中涉及的思路、设计方法、算法对Linux的防火墙开发有一定的参考价值。