防火墙系统需求与改进分析
2010年9月第13卷第17期
中国管理信息化
ChinaManagementInformationization
Sep.,2010V01.13,No.i7
防火墙系统需求与改进分析
马
峥
(辽宁省抚顺市卫生学校,辽宁抚顺113009)
【摘要]防火墙在网络中占有重要的地位。用户安全意识的提高和网络攻击手段的发展使得传统的功能简单的个人
防火墙已经无法满足现在的需求。首先.用户对个人防火墙的功能需求增强,个人防火墙需要提供不同层次的安全保护。其次.用户对个人防火墙效率的需求增强,在防火墙功能扩展的情况下。效率问题显得非常突出。因此,在实际应用
中个人防火墙在实现安全的基础上.不仅要保持高效和-fLg.还要实现不同层次的保护功能,在对防火墙的性能和效率
进行分析和改进的基础上.设计并实现了一个基于Windows平台的个人防火墙。个人防火墙在实现过程中应用了效率和性能改进的策略.取得了非常好的效果。
[关键词]网络安全;个人防火墙;驱动程序;网络驱动接口规范;系统服务
doi:lO.3969,i.issn.1673一0194.2010.17.028
[中图分类号]TP393.08
1
[文献标识码】A
[文章编号】1673一0194(2010)17-0068-02
防火墙系统的需求分析
随着网络的发展和普及.上网的人群越来越多.同
较多的时间。当网络带宽很大的情况下.如果是TCP传输,就会导致效率下降。如果是UDP传输,就会导致丢包的情况发生。
当防火墙的驱动层执行各项功能时.会不断有数据传递给中间服务层.如包过滤处理结果等等:同时中间服务层也会主动通信驱动层.如修改规则表等。通常这种上层同驱动层的通信主要方式是通过IOCTOL实现的.这种方式实现起来简单.但每次通信的时候都需要占用一定的内存资源和CPU资源。当网络带宽大。数据流量大的情况下.IOCTOL通信是非常繁忙的,因此如何改善驱动层同上层的通信.将直接影响防火墙的性
能。3
时网络入侵的方式种类也是越来越多.层出不穷。因此.个人用户对本机安全的需求是非常突出和必要的.而个人防火墙作为网络安全最基本、最经济、最有效的手段,其地位也是非常重要的,、防火墙的实现方式有硬件和软件两种,作为个人用户而言,硬件防火墙固然很好.但其昂贵的价格限制了其在个人防火墙领域的应用。因此.目前而言.个人防火墙的主要实现方式还是采用软件实现的方式。无论个人防火墙功能多么完善.性能效率多么高效,这些都不能带给用户直接的感受。用户能直接感受到的就是个人防火墙的使用过程.如防火墙的安装部署.防火墙的界面部分.或者说个人防火墙表示层能和用户直接交互的部分。因此.个人防火墙的部署和操作的方便也是需求重点之一。
2
系统性能改进方法
针对系统的性能瓶颈.本文主要采用以下方法来改
进系统的性能:3.1优化规则表
防火墙系统对数据包实现过滤功能的核心部分就是规则表。规则表构建的好坏直接影响数据包过滤功能的性能以及效率的好坏。防火墙系统一般允许用户自己添加防火墙规则.当用户添加的规则很少的情况下,可能带来的影响并不大.而在用户添加了很多规则之后,可能在这些规则中会出现很多前后矛盾的规则,很多多余的规则.如果规则表构建得不好.还会出现规则表不完整的情况.也就是会出现数据包无法找到规则表中的规则相匹配的情况。所以创建正确的规则表是防火墙系统中一个非常重要的部分。
系统性能分析
很多时候防火墙系统的执行效率并不高.导致
CPU使用率高.整个计算机变慢。下面就通过分析防火墙系统来总结影响防火墙效率的一些重要因素。
防火墙的基本功能就是包过滤功能.当防火墙拿到数据包后.就会把数据包同规则表进行比较.以决定通过或者丢弃。当朋户指定了很多过滤规则的时候.防火墙通常是把数据包按一定的顺序一条一条地同规则表进行比较。当规则表条目很少的时候.可能效率影响不大,但当规则表条目很多时.这样的顺序比较就会占用
[收稿13期]2010-02—28
68/CHINAMANAGEMENTINFORMATIONIZATION
防火墙系统需求与改进分析
企业管理信息化
很多情况下防火墙的设计者只是特别重视规则表实现.每次驱动层拿到数据包后,通过IO或者事件的方匹配的效率问题。在效率的问题上.设计有们一般分成式将数据包送到共享缓存中.然后事件通知应用层处两个方向:一个方向是采用某种数据结构以便更快地进理.应用层收到通知后。就到共享缓存处读取数据包进行规则表匹配.另一个方向是采朋某种自定义的语言来行处理.然后将处理后的结果传回共享缓冲区。同时以实现快速匹配。但这些高效率的实现只有建立在一个完事件或者lO方式通知驱动层。驱动层收到通知后,读取整、紧凑、和谐的规则表基础之上才能得以实现的。共享缓存区。在应用层里可应用的函数非常丰富。因此3.2通信方式
负载的实现做起来比较简单.但这种方式要耗费很多防火墙系统主要的通信集中在驱动层和中间服务CPU资源。
层之间,以及用户态的进程之间的数据交互。这些通信驱动层过滤就是一次性将规则表传人驱动层.然后非常繁忙。
直接在驱动层过滤。但驱动层可以使用的函数非常少,驱动层与中间服务层的主要的通信方式有IO。事因此不像应用层处理那么方便,但却减少了通信。减少件以及共享内存。上层通过CreateFile打开驱动后,通
了每次通信带来的系统开销。
过DeviceIOControl方式对驱动层进行读写操作.这是
因为规则表并不需要很复杂的处理.所以我们采用一种比较基本的简便的通信方式。但是这种方式会占用驱动层过滤的方式,降低通信开销。
较多的CPU资源。每次进行10ctl通信分配缓存,都会4
结论
相当消耗资源。另外一种方式是通过设置共享内存,用随着网络的发展。个人防火墙越来越受到重视.地事件(Event)通知对方.然后另一方通过启动一线程
位也越来越重要.用户对个人防火墙的要求也越来越WaitForSingleObject收到Event通知后.就到共享内
高.因此个人防火墙要在丰富的功能实现基础上兼具良存处读取数据.这种方式明显比上面的10ctl方式节省好的性能和效率。
资源.可以避免性能下降。但是共享内存方式的实现比本文首先对现在的网络体系结构和Windows系统IOctl复杂。
的网络架构进行了介绍和对比。然后对在Windows平为了提高防火墙系统的性能和通信效率.驱动层与台下各层次的防火墙开发的相关技术进行介绍和分析。中间服务层主要采用缓存事件配合IO的方式.节省定位了5个系统性能和效率瓶颈:(1)规则表的匹配低CPU资源,提高计算机性能。
效;(2)驱动层同中间层的繁忙通信;(3)进程间的繁忙在用户态的进程之间的主要通信方式有消息机制、数据交换;(4)文件读写的低效;(5)策略表的低效查找。
共享数据方式、内存映射文件方式等.但一切都是基于针对这些瓶颈.我们给出了解决瓶颈的7点改进策内存映射文件方式机制。通过创建文件内核对象,把文件内核对象映射到不同的进程空间.达到进程间的共享略:(1)优化规则表;(2)规则表细分;(3)共享内存和事数据.保证了进程之间数据交换的效率.确保最低的系件的通信方式;(4)内存映射;(5)直接驱动层计算;(6)二分查找;(7)使朋索引表。
统开销.
最后.本研究工作采用上述改进策略构造了一个单因此.在用户态的进程之间的主要通信方式采用内机防火墙系统.实现了对本地系统的网络数据包、文件存映射的方式,保证高效率和低系统开销。3.3读写
系统以及进程线程的监控功能。
因为防火墙要经常读写文件.比如规则表、策略表主要参考文献
以及Log信息。因此。频繁地打开文件、读写文件、关闭文件将占用大量的内存空间和CPU时间.对防火墙的[1]谢希仁.计算机网络EM]笫4版.|E京:电子工业出版社,2003.
效率和性能的影响很大。如果采用内存映射方式,不仅[2]陈琪,屈光,高传善.Windows单机版防火墙包过滤多种方案比较与实
保证了进程间的数据交换的效率和性能.同时也保证了现【J].计算机应用与软件。2005,22(5):114-11&
IO文件读写的效率。[3]史洪,高丰.基于Winsoek协议栈的数据封包截获技术[J].高性能计算
3.4驱动层内过滤
技术。2005(1):4l-43.
通常过滤的方式有两种:在驱动层过滤和在应用层
[4]陆萍,徐汀荣.基于过滤钩子技术的XShield防火墙的研究与实现[Jl现
代电子技术.2005,28(8):20-21,24.
过滤。
[5]陈保香.基于Winsock的中间动态连接库探讨[J].微计算机应用,2000
在应用层过滤实现起来比较简单.很多防火墙如此
(3):143.
防火墙系统需求与改进分析
防火墙系统需求与改进分析
作者:作者单位:刊名:英文刊名:年,卷(期):
马峥
辽宁省抚顺市卫生学校,辽宁,抚顺,113009中国管理信息化
CHINA MANAGEMENT INFORMATIONIZATION2010,13(17)
参考文献(5条)
1.陈保香 基于Winsock的中间动态连接库探讨 2000(03)
2.陆萍;徐汀荣 基于过滤钩子技术的XShield防火墙的研究与实现[期刊论文]-现代电子技术 2005(08)3.史洪;高丰 基于Winsock协议栈的数据封包截获技术[期刊论文]-高性能计算技术 2005(01)
4.陈琪;屈光;高传善 Windows单机版防火墙包过滤多种方案比较与实现[期刊论文]-计算机应用与软件 2005(05)5.谢希仁 计算机网络 2003
本文链接:http:///Periodical_zgkjdsh201017028.aspx