当前位置:文档之家› (完整版)windows平台下个人防火墙的设计与实现毕业设计

(完整版)windows平台下个人防火墙的设计与实现毕业设计

摘要随着互联网的普及,安全问题越来越受到大家的重视。

一个安全良好的网络环境能很好的保护好人们的计算机不受木马和病毒的侵扰,给人们的财产和隐私提供必要的保护。

个人防火墙作为最早出现和最多使用的网络安全产品,以软件的形式存在于计算机与其所连接的网络之间,对流经计算机的未经授权的网络数据包进行监控和阻止,以起到对系统的保护作用。

因此,开发有效的个人防火墙具重要意义。

本文根据个人防火墙的实际需求,首先分析了目前市场上各类防火墙所采用的不同核心过滤技术,结合其优缺点和实现的难易程度,确定了本课题实现所采用的技术并做出相应的阐述。

其次对本课题实现的功能和核心技术进行了详细的介绍,接着对个人防火墙的相关功能进行了介绍和展示,最后对完成本论文中获得的心得体会和经验进行了系统的总结。

本课题中实现个人防火墙所采用的核心过滤技术为Filter-Hook Driver。

核心过滤驱动的开发采用Visual Studio 2010和Windows下的驱动开发工具WDK进行编码和编译,用户层采用C语言进行编写。

用户界面用MFC实现。

本个人防火墙实现了对网络数据包的过滤,管控规则设置和日志功能。

充分考虑了个人防火墙所需的基本功能,操作方便,界面简单友好。

关键词个人防火墙;数据包过滤;Filter-Hook Driver;网络安全AbstractWith the popularity of the Internet, security issues are attention by more and more people. A secure network environment can protect personal computer from Trojans and viruses, and provide necessary protection to people's property and privacy. Personal firewall as the earliest and the most used Network Security toolkit, it exists as software, between a computer and its network. In order to protect the system, personal firewall monitors and prevents network packets which are flowing through the compute and unauthorized. Therefore, the development of an effective personal firewall the current market, combined with the ease of their implementation and relative merits. This topic determined . Secondly the function and the core technology of this project is introduced in detail, then introduces and displays the related functions of a personal firewall, and finally summarizes the feelings and experiences in completing this paper.In this topic, the core filtering technology in realization of personal firewall is adopted by the Filter-Hook Driver.Filter-Hook Driver using Visual Studio 2010 and WDK todevelopment which is a driver development tool under theWindows, Using C language to write user layer. The userinterface use MFC to achieve. This personal firewall achievedthose functions: network packet filtering, control rules set andlogging. Fully considering the basic functions of a personalfirewall, this system is easy to operate and )技术的第四代防火墙。

它根据过去的通信信息和应用程序状态信息动态生成过滤规则。

1994年,以色列的CheckPoint公司开发出了第一个采用这种技术的商业化的防火墙产品。

1998年,NAI公司推出了一种自适应代理(Adaptive proxy)技术,并在其产品Gauntlet Firewall for NT中得以实现,给代理类型的防火墙赋予了全新的意义,可以称之为第五代防火墙。

该类型的防火墙整合了动态包过滤技术和应用代理技术,本质上也可认为仍属于状态检测防火墙。

另外,基于实现划分,防火墙又可分基于路由器的防火墙、用户花的防火墙、建立在通用操作系统上的防火墙和具有安全操作系统的防火墙四个阶段:基于路由器的防火墙即第一代防火墙,上面已做简单介绍。

用户化的防火墙即把过滤功能从路由器中独立出来加上日志和警告功能,并针对用户需求提供相应功能,使得防火墙的安全性和性价比相对第一代防火墙有所提高。

建立在通用操作系统上的防火墙,顾名思义,就是将防火墙以软件或硬件的实现方式独立出来,并配有专用的代理系统,以监控所有协议的数据和指令,并能保护用户的编程空间和可配置内核参数的设置,这使得防火墙的安全性和速度得到大幅提高。

具有安全操作系统的防火墙本身就是一个操作系统,在安全性上较前几种防火墙有本质的提高,这也是目前防火墙产品的主要发展趋势,这类防火墙的开发厂商有操作系统的源代码,可实现安全内核并对其加固,甚至对每个服务器和子系统都做安全处理,一旦骇客攻破了一个服务器,防火墙就将它隔离在此服务器内,不会对其他部分构成威胁,且透明性良好,易于使用。

windows操作系统作为全球使用者最多的操作系统,其平台下开发出了许多优秀的个人防火墙。

国外的如Symantec公司的Norton、Network ice公司的BlackIce Defender、Mcafee公司的Cisco、卡巴斯基互联网安全套装个人版以及Zone Lab公司的Free ZoneAlarm等都是比较著名的个人防火墙。

国内市场上个人用户较多的有天网防火墙个人版、金山网镖、瑞星、费尔等常见个人防火墙。

所有这些基于windows的个人防火墙的区别主要在于它们所采用的对网络数据包拦截的核心技术不同。

总的来说,可分为用户态和内核态数据包拦截两大类[1]。

用户态下的个人防火墙主要为基于winsock2 SPI技术的个人防火墙(如费尔个人防火墙等);和内核态下的个人防火墙主要有:基于TDI过滤驱动的个人防火墙(如国内的天网防火墙和金山网镖等),基于NDIS中间层驱动(如冰盾防火墙等)的个人防火墙,基于NDIS-HOOK的个人防火墙(如卡巴斯基互联网套装个人版)和基于Win2K Filter-Hook Driver的个人防火墙。

目前很多比较优秀著名的个人防火墙多采用复合型数据包过滤技术进行开发,即采用两种或多种封包截获技术进行数据包的过滤,以达到全面、强大、平台兼容的效果。

本课题将采用Filter-Hook Driver过滤技术,Filter-Hook Driver是从Windows 2000开始提供的一种机制,利用ipfiltdrv.sys所提供的功能来拦截网络数据包,其结构简单,相对易于实现,且能截获所有的IP包。

1.3 课题研究内容与结构本文主要研究通过实现Filter-Hook Driver的方式来操控ipfiltdrv.sys对网络数据包的过滤,本课题主要分为核心层驱动和用户层调用函数及界面两个模块,通过用户层操作控制核心层驱动程序,从而实现个人防火墙。

简单来说,实现Filter-Hook就是对系统ipfiltdrv.sys 的接口的实现。

本文的整体结构如下:第一章主要阐述系统开发的背景和研究意义、国内外研究现状以及本文总体概述。

第二章主要针对本文所涉及的技术的相关知识理论进行简单的介绍。

第三章将介绍本防火墙系统开发中所用到的开发环境和工具。

第四章详细介绍本文个人防火墙的系统设计和各个功能模块。

第五章主要阐述核心功能的具体实现和详细分析以及系统测试等。

最后是总结,致谢等。

第二章相关理论简介本章将对课题实现中所用到的技术和开发工具进行介绍。

将对各种主流防火墙核心过滤技术、TCP\IP和驱动开发相关基础知识再做简单介绍。

另将主要介绍如Filter-Hook Driver、IP过滤驱动(IP Filter Driver)等所用到的技术。

2.1 防火墙核心过滤技术网络防火墙的核心过滤都是基于数据包的拦截技术之上的。

在Windows下数据包的拦截方式可分为用户态和内核态数据包拦截两大类[2]。

2.1.1 用户态数据包拦截技术用户态下的数据包拦截技术主要为Winsock2 SPI(Service Provider Interface)。

Winsock2是Windows Sockets的2.0版本,SPI是Winsock2提供的一个可编程接口。

SPI以动态链接库(DLL)的形式工作在应用层,开发者通过安装自己编写的SPI程序(服务提供者接口程序)来处理截获的基于Socket的网络数据包以完成过滤。

Winsock2 SPI以DLL形式存在,编程简单,调试方便。

并且数据封包比较完整,便于内容过滤。

但无法拦截核心层或不用Socket的网络通讯(如ICMP)的数据包,容易被木马或病毒绕过[3]。

2.1.2 内核态数据包拦截技术内核态下的数据包拦截方式有多种:TDI过滤驱动程序、NDIS中间层驱动程序、NDIS-Hook Driver和Filter-Hook Driver。

目前很多大型防火墙都是采用复合型的数据包过滤技术。

下面简单介绍各包拦截技术。

Filter-Hook Driver将在后边进行单独的介绍。

1.TDI(Transport Driver Interface)过滤驱动:TDI-Filter Driver程序通过将创建的一个或者多个设备对象挂载到一个现有的驱动程序(tcpip.sys)之上,当有应用程序或其他驱动程序调用这一个或多个设备对象时,会首先映射到过滤驱动程序上,然后再由过滤驱动程序传递给原来的设备对象[4]。

相关主题