论文部分内容阅读
“基于Linux 操作系统的关键字过滤防火墙”是生产发展基金所所赞助的项目。本系统的设计与实现是基于Linux2.4 内核版本之后新加入的Netfilter 防火墙框架体系结构。用户通过在Netfilter 框架中注册关键字过滤的函数,对网络上传输的包进行内容过滤。含有非法信息(即本文所指的关键字)的包,会触发防火墙安全策略单元的相关函数,然后由这些函数按照客户预先定制的处理规则对包执行动作(丢弃或排队到用户空间做进一步处理),同时这个包的其它一些信息也会被日志系统记录在案,供网络管理员查看。在基础理论部分,本文首先介绍了经典的ISO 七层协议模型和实用的TCP/IP 模型,并对当今流行的几种类型的防火墙进行了分析和比较。接着,对Linux 内核编程以及设备驱动的知识进行了简要的介绍。然后,又介绍了在Linux 网络协议栈中接收包和发送包的原理。最后概述了自Linux 内核2.4 版本之后引入的Netfilter 防火墙框架体系结构。随后,分四个模块分别讨论了关键字过滤防火墙是如何实现的。注册单元模块完成整个防火墙的初始化工作,它负责将安全策略单元中的处理函数注册到Netfilter 防火墙框架上,并对整个防火墙的关键数据结构进行初始化。字符驱动程序模块是内核空间和用户空间进行数据交流的接口,所有的数据传输工作都要通过它才能顺利的完成。而安全策略单元模块则是实现关键字过滤的核心,流经网络接口的包通过它的检验之后才能顺利的流向目的地,否则就会触发对“非法包”处理的事件。而日志信息模块则保证网络管理员能够获得足够的数据包信息:它会按照既定的策略对含有非法关键字的数据包的某些字段进行记录。除此之外,位于用户空间的守护进程模块将负责从日志信息模块读取日志,并存入到磁盘上我们指定的位置;守护进程模块也将和搜索引擎的后台数据库一起作用,向安全策略单元提供禁止IP地址列表。通过对本系统的初步测试,表明了系统实现了既定的设计目标,能够正常的工作,并且具有较好的性能。