分布式防火墙系统的设计
2021-03-07李勇
李勇
(甘肃新网通科技信息有限公司 甘肃省兰州市 730020)
近些年来,信息技术得到快速发展和普及的同时,计算机安全问题也在日益突出。在此背景下,如何保障计算机正常运行的同时,提高系统安全性已经成为当前研究的重点内容[1]。结合实际情况来看,虽然当前市面上各类防火墙软件相对较多,但大多数防火墙软件优先考虑系统检测效率,而非保障系统安全。针对此种情况,本文将基于当前市面上主流防火墙技术,提出一款分布式防火墙技术,从而对当前防火墙技术进行补充和完善。
1 系统需求分析
1.1 系统功能需求
分布式防火墙系统主要分为客户端和服务端两部分,其中服务端主要用户向客户端提供防火墙过滤规则,实现客户端防火墙系统更新升级;客户端主要用于对计算机系统及网络数据检测和过滤、应用程序访问网络中的监测及过滤,并从服务端获取防火墙过滤规则。
1.1.1 客户端功能需求
分布式防火墙系统的客户端功能结构如图1所示。
图1:分布式防火墙系统的客户端功能结构
(1)网络过滤:分布式防火墙系统的核心功能,可以根据服务端提供的防火墙过滤规则进行网络访问拦截和网络事件过滤。其中应用层过滤是指对符合防火墙过滤规则的网络访问进行限制,并记录系统日志,允许其他网络访问正常访问等;协议级过滤式则是根据网络协议过滤规则,自动判断TCP 数据包等网络数据包是否可以通过防火墙,此过程中防火墙会对内外两方面数据包进行监测管理,并在发现符合过滤规则的内容后记录日志信息。
(2)规则管理:规则管理主要用于实现防火墙过滤规则的查询、导入、导出及维护。其中规则查询可以为用户提供当前过滤规则的全面查询;规则导入可以从服务端中更新规则[2];规则导出可以从系统数据库中导出过滤规则,以此来为其他功能模块提升过滤规则支持;规则维护可以为用户提供规则的增、删、改等功能。
(3)日志管理:日志管理主要用于日志的生成、查询及维护。其中,日志生成主要用于记录系统日志信息,此过程中涉及到应用层过滤日志、协议级过滤日志两部分内容;日志查询可以为用户提供根据时间、应用程序、网址、处理方式等分类方式的拦截日志查询;日志维护可以为用户提供日志清除等维护功能。
(4)报警管理:报警管理功能可以为系统提供消息提示、声音报警、邮件报警等功能支持。其中消息提示可以根据规则管理中的报警条件,在发现出现符合报警条件情况时,会及时发出报警消息,并对触发报警条件的行为条件的完整路径、IP 地址以及处理方式进行详细记录[3];声音报警通常伴随消息报警一同进行,可以及时通过用户及时停止和处理危险行为;邮件管理主要用于防火墙关闭后系统向用户邮箱自动发送邮件,并在其中向用户汇报防火墙过滤情况。
(5)配置管理:配置管理主要包括查看状态、状态值以及系统配置等功能。其中查看状态可以方便用户实时查看防火墙工作状态信息,其中涉及的信息包括防火墙启动状态、本次启动中拦截数量等;状态控制则可以为用户提供启停防火墙过滤功能支持;系统配置可以管理防火墙及各类应用是否在计算机启动时自启动。
1.1.2 服务端功能需求
分布式防火墙系统的服务端功能结构如图2所示。
图2:分布式防火墙系统的服务端功能结构
(1)规则管理:服务端配置管理主要包括规则导出、规则查询、规则维护以及规则导入等功能。其中规则导出是指将服务器数据库中的过滤规则导出,为其他功能模块提供过滤规则支持;规则查询可以为用户提供现有过滤规则;规则维护可以为用户提供规则的增、删、改等功能;规则导入则可以将更新后的过滤规则导入到服务器数据库,完善服务端过滤规则。
(2)通信管理:通信管理主要包括规则发送、询问应答、选择统计等功能,其中规则发送可知在客户端向服务端发出防火墙过滤规则更新请求后,服务端向客户端发送更新过滤规则;询问应答可以在客户端无法判断程序上网请求的情况下,接收客户端发出的询问请求后,对服务端数据库进行全面检索,进而根据检索结果向客户端作出反馈[6];选择统计在用户作出自主选择以后,客户端会将选择结果上传给服务端,此时服务端需要将用户作出的选择结果进行统计分析,用作后续过滤规则完善的依据。
1.2 系统性能需求
分布式防火墙系统应满足以下性能需求:
(1)防火墙系统需要具备良好的可移植性和可拓展性,为系统的后续移植和拓展作出良好保障;
(2)防火墙系统需要在Windows XP/7/10 等系统环境下正常运行;
(3)防火墙系统人机交互界面设计应遵循“以人为本”的要求,方便用户的操控使用;
(4)防火墙系统的各项功能、程序及数据库均可以进行维护及管理。
2 分布式防火墙系统的设计
2.1 主要技术分析
2.1.1 Filter Hook Driver 过滤技术
Filter Hook Driver 过滤技术作为一种内核状态过滤技术,其自Windows 2000 系统便开始向计算机提供过滤支持,可以通过Ipfilrdrv.sys 的各类功能实现网络数据包的过滤、判断及拦截。同时,相对于其他过滤技术来说,Filter Hook Driver 过滤技术整体结构更为简单、有利于操作及实现,再加上技术发展时间较长,功能较为完善,所以在综合分析考虑后,最终选用此技术作为分布式防火墙的过滤技术。
2.1.2 SQlite 技术
SQlite 技术支持市面上各类常见操作系统,并且还可以同各类常见程序语言及开源数据库结合,再加上SQlite 技术技术具有资源占用率低、数据处理数据快、无需安装及额外管理等优势,更符合防火墙系统的实际要求,所以对市面上各类技术进行综合分析后,最终选择SQlite 技术作为客户端数据技术。
在具体设计中,SQlite 技术主要负责防火墙系统客户端数据库运行,即连接数据库、执行数据库相关事务内容、断开数据库连接,并关闭数据库附加各类文件[7]。
2.1.3 SQL Server 技术
SQL Server 技术主要用于分布式防火墙系统服务端的数据库开发。由于客户端数据库中所存在的数据信息无需保证完整性,其内部也无需存储所有系统过滤规则,所以,数据量较小,可以采用轻量化的Qlite 数据库。而服务端需要保障系统过滤规则信息的完整性和正确性,所以,轻量化设计将难以满足相关要求,所以在综合选择后选用SQL Server 技术作为服务端数据库。
2.2 分布式防火墙系统总体架构设计
分布式防火墙系统主要分为客户端和用户端两部分,其中客户端的核心功能在于应用层网络过滤和协议级网络过滤两部分,本设计中的其他功能均以实现以上两种功能为前提进行配置和实现。具体分布式防火墙系统总体设计架构如图3所示。
图3:分布式防火墙系统总体设计架构
如图3所示,在分布式防火墙系统中,应用层网络过滤模块主要用于实现网络过滤功能中的应用层网络过滤子功能,而协议级网络过滤模块则是负责网络协议数据包相关的过滤和拦截;规则与日志过滤模块主要用于系统过滤规则以及阻拦日志的分析及管理;报警管理模块则可以在发现符合过滤规则要求的问题后,通过消息提示、声音报警、邮件报警等多种方式向用户提供报警信息,促使用户可以第一时间对问题进行发现和处理;通信管理主要负责对系统网络通信相关的功能实现。此外,用户的人机交互界面可以通过界面中的功能来控制对应系统功能模块工作运行。
2.3 过滤模块设计及实现
由于本设计中采用了内部状态过滤技术,所以实际设计中的过滤模块也将是内部驱动过滤模块。具体设计过程中过滤模块的驱动程序入口将会设置为DriverEntry()函数,此函数与常规的Main()函数相类似,可以帮助系统自动初始化和调用系统存储日志和过滤条件等数据结构,之后再创建系统逻辑设备,此设备不会与系统物理设备相关联。
在完成逻辑设备创建后,还需要实现逻辑设备与符号连接工作,即实施符号连接。此过程中可以符号连接的设备可供系统应用程序调用,但调用需要CreateFile()函数作为驱动支持,在应用程序与逻辑程序达成通信连接后,实现程序调用及控制。
最后,设计中还需要制作函数指针,在系统卸载驱动模块时,为保障卸载效果,需要调用提前设计的函数指针以及现有函数列表中的函数指针,根据预设的卸载函数指针及其他指针参数项,完成系统驱动模块卸载后,对系统驱动模块进行自动初始化处理。
此外,驱动模块的各项功能发挥均需要通过IRP 由上层程序分配驱动功能,并在完成功能分配后,具体功能实现则会交由函数指针通过确定函数来实现。在驱动程序模块初始化后,系统需要重新制定各类驱动模块所需函数,在此过程中,驱动模块中的函数会采用先操作类函数,再根据操作类函数确定执行任务类函数的处理过程。
3 结束语
综上所述,本文基于现有防火墙技术,提出一种分布式防火墙设计架构方案。此设计采用了B/S架构、Filter Hook Driver 过滤技术、SQlite 技术以及SQL Server 技术,相对于传感防火墙设计来说,所构建系统具有轻量化、可拓展、可维护、可移植等特征,不仅符合当前市场对防火墙技术的相关要求,适用于包括家庭使用、小型办公等多种应用场景,而且还能够提高防火墙拦截效率及效果,提高用户个人计算机的整体安全性,充分发挥出防火墙系统的基本功能,避免用户计算机被网络攻击,所以总体来说具有一定的研究价值和应用价值,值得在后续研究及应用中进行参考。