基于Windows的包过滤防火墙的设计与实现
2018-05-11李冬芬于北瑜
◆李冬芬 于北瑜 肖 敏
基于Windows的包过滤防火墙的设计与实现
◆李冬芬 于北瑜 肖 敏
(广东海洋大学数学与计算机学院 广东 524088)
本文采用VS2010和VC ++6.0开发,利用IP过滤钩子驱动程序的设计和实现技术,实现了基于Windows系统下的包过滤防火墙。试验结果表明,该技术可靠、稳定,具有一定的实用性。
包过滤防火墙;Windows;网络安全
0 引言
互联网是一个开放的网络,将全世界的人联系在一起,促进了信息交流和共享。但是互联网也是一把双刃剑,互联网信息安全问题日益突出。随着大数据时代的来临,人们的日常生活、工作、学习越来越离不开网络,大量的个人信息暴露在互联开放的网络中,每天都发生无数起网络安全事件。2016年公安机关网络安全保卫部门共侦破侵犯公民个人信息犯罪案件1800余起,查获各类公民个人信息300余亿条[1]。党的十八大以来,以习近平同志为核心的党中央站在战略高度与长远角度,将网络安全和信息化工作提升到前所未有的高度。
防火墙系统是目前使用最多的一种网络安全防护技术,通过在用户的内网和外网之间架设一道防火墙系统,保障内网用户的信息安全,阻止黑客的非法入侵[2]。包过滤型防火墙工作在OSI参考模型的网络层以及传输层[3],在网络层中根据用户设置的安全访问策略(过滤规则),检查每一个数据包的源IP地址、目的IP地址以及IP分组头部的其他各种标志信息(如协议、服务类型等),确定允许或禁止该数据包通过防火墙[4]。因此包过滤型防火墙处理数据包的速度快,并且容易配置,实现成本低。本文探讨基于Windows的包过滤防火墙的设计与实现。
1 功能结构
本设计采用VS2010和VC ++6.0开发,利用IP过滤钩子驱动程序的设计和实现技术,开发了基于Windows操作系统的简单包过滤型防火墙,该防火墙能够按照用户设置的过滤规则对网络的IP数据包进行处理。该防火墙功能主要包括以下几个方面:
(1)用户设置过滤规则:设置源IP地址、目标IP地址、端口号、协议;
(2)过滤规则的添加、删除和保存;
(3)过滤规则的安装和卸载。
(4)IP封包过滤驱动。
具体的功能结构如图1所示。
2详细设计
2.1 过滤规则设置功能模块
包过滤防火墙根据用户设定的过滤规则检查每一个数据包的源IP地址、目的IP地址以及IP分组头部的其他各种标志信息(如协议、服务类型等)确定是否允许该数据包通过防火墙[4]。所以在设置过滤规则时,需要设置源IP地址、目标IP地址、端口、协议和动作。其设置规则的界面如图2所示。
图1 系统功能结构
图2用户设置过滤规则界面图
2.2过滤规则添加删除和存储功能模块
在该功能模块中,用户能添加、删除和保存过滤规则。
2.2.1添加过滤规则
添加规则时,用户在取得添加规则对话框中的数据后,判断格式是否匹配,若否则要输入正确的规则,才能将取得的数据添加到文档类中。
2.2.2删除过滤规则
删除规则时,用户先选定规则,然后判断规则是否正在过滤,若是则要先停止过滤,才能删除规则。当用户删除规则后,此规则就从文档类中删除,同时视图类需要更新显示。
2.2.3过滤规则存储
在该功能模块中,用户可以及时存储添加的过滤规则及对每一个规则的操作。下次打开防火墙可以直接加载该规则,无需手动输入那些常用的过滤规则。
2.3过滤规则安装卸载功能模块
按照用户设定的规则,IP过滤驱动进行数据包的过滤。用户对已存储的规则先进行安装,才能将规则发给IP过滤驱动,安装功能就是将过滤规则传给IP过滤驱动。如果用户要删除过滤规则时,就要先停止过滤,然后卸载该规则,最后才能删除,卸载功能就是将已安装的规则从过滤驱动中删除。
2.4 IP封包过滤驱动功能模块
该功能模块用DrvFltIp驱动程序分别对数据包和TCP数据包,以及UDP数据包进行封包,由IP过滤钩子处理进出的封包。
3 测试使用
测试计算机位于网关地址为192.168.0.1的局域网内,本地IP地址为:192.168.0.99。通过局域网连接外部网络,可以PING通本地网关地址192.168.0.1和电信DNS服务器地址218.85.152.99,如图3和图4所示。
图3 ping192.168.0.1图
图4 ping218.85.152.99图
运行防火墙,点击“Add Rule”按钮进行过滤规则设置,如图5所示。
Source IP Address:192.168.0.1
Destination IP Address:192.168.0.99
Port:0
Protoco:ICMP
Action:Drop(丢弃)
图5添加规则界面
点击“A?adir”按钮将规则保存到防火墙,如图6所示。
图6规则保存到防火墙
点击“Install”防火墙将过滤规则传递给过滤驱动,点击“Star”防火墙开始过滤数据包,如图7所示。
图7开始过滤数据包
测试计算机可以和本地网关(路由器)及电信DNS服务器进行ICMP数据包收发。若用户在防火墙上设置过滤源IP地址为192.168.0.1、协议为ICMP的规则之后,再次运行该防火墙,测试计算机和本地网关(路由器)不能进行数据包收发,在连接时命令显示为“Request timed out”(如图8所示)。但是测试计算机还能和电信DNS服务器218.85.152.99进行数据收发(如图9所示)。
图8 ping192.168.0.1图
4结束语
本设计主要功能建立在驱动及钩子机制上,不仅提高了程序工作效率,也使程序覆盖面更加广,泛用性更高,而且使用过程中,对用户来说也将更加安全和稳定。
图9ping218.85.152.99图
[1]中共中央网络安全和信息化领导小组办公室. 公安部: 严打侵犯公民个人信息犯罪[EB/OL]. http://www.cac.gov.cn/2016-12/18/c_1120138724.htm,2016-12-18.
[2]蒙磊,李双虎,杨海艳. 基于freebsd包过滤防火墙的设计与实现[J].网络安全技术与应用,2014,(10):70,72.
[3]杨秋. 基于Windows的个人防火墙的设计与实现[D].大连:大连理工大学,2013.
[4]冷继兵. 基于主动防御的校园网研究与实现[D].西安:西安电子科技大学,2009