简易WINDOWS防火墙的设计与实现—免费毕业设计论文_第1页
简易WINDOWS防火墙的设计与实现—免费毕业设计论文_第2页
简易WINDOWS防火墙的设计与实现—免费毕业设计论文_第3页
简易WINDOWS防火墙的设计与实现—免费毕业设计论文_第4页
简易WINDOWS防火墙的设计与实现—免费毕业设计论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)简易Windows防火墙的设计与实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名职称:论文提交日期:简易Windows防火墙的设计与实现摘 要当今时代是飞速开展的信息时代,计算机与信息处理技术日渐成熟。随着Internet和计算机网络技术的蓬勃开展,网络平安问题现在已经得到普遍重视。网络防火墙系统就是网络平安技术在实际中的应用之一。本设计实现的防火墙采用IP过滤钩子驱动技术,过滤钩子驱动是内核模式驱动,它实现一个钩子过滤回调函数,并用系统提供的IP过滤驱动注册它,IP过滤驱动随后使用这个过滤钩子来决定如何处理进出系统的数据包。本防火墙由以下几个模块组成:过滤规那么添加

2、模块,过滤规那么显示模块,过滤规那么存储模块,文件储存模块,安装卸载规那么模块,IP封包过滤驱动功能模块。用户只需要通过主界面菜单和按钮就可以灵活地操作防火墙,有效地保护Windows系统的平安。关键词:防火墙;过滤钩子;过滤驱动;包过滤The Design and Implement of Simple Windows FirewallAbstractThe current era is a rapid development of information age. The technologies of computer and information processing become

3、maturity. With the Internet and computer network technology to be flourishing, network security that has been widely concerned. Firewall system is one of the security technologies that used in the network. This design has implemented a firewall adopting the IP filter-hook driver technology; its driv

4、en through the kernel mode, the filter-hook callback function has been implemented and the filter-hook driver is registered by the IP filter driver which is provided by system. The IP filter driver uses the filter-hook to handle the data packets in and out. The firewall is composed of the following

5、modules: adding filter rules module, display filter rules module, storage filter rules module, storage file module, installation and unloading rules module, IP packet driver module. Users can finish the operation by using main menu and button and protect the system effectively.Key words: Firewall; F

6、ilter-Hook; Filter Driver; Packet Filtering目 录论文总页数:21页 TOC o 1-3 h z u HYPERLINK l _Toc178740814 1引言 PAGEREF _Toc178740814 h 1 HYPERLINK l _Toc178740815 1.1课题背景 PAGEREF _Toc178740815 h 1 HYPERLINK l _Toc178740816 1.2本课题研究意义 PAGEREF _Toc178740816 h 1 HYPERLINK l _Toc178740817 1.3本课题研究方法 PAGEREF _Toc

7、178740817 h 1 HYPERLINK l _Toc178740818 2防火墙概述 PAGEREF _Toc178740818 h 1 HYPERLINK l _Toc178740819 2.1防火墙的定义 PAGEREF _Toc178740819 h 1 HYPERLINK l _Toc178740820 2.2防火墙的根本策略 PAGEREF _Toc178740820 h 2 HYPERLINK l _Toc178740821 2.3包过滤防火墙 PAGEREF _Toc178740821 h 2 HYPERLINK l _Toc178740822 2.3.1 数据包 PAG

8、EREF _Toc178740822 h 2 HYPERLINK l _Toc178740823 2.3.2 包过滤防火墙的工作原理 PAGEREF _Toc178740823 h 2 HYPERLINK l _Toc178740824 3开发工具 PAGEREF _Toc178740824 h 3 HYPERLINK l _Toc178740825 3.1Visual C+ 6.0 PAGEREF _Toc178740825 h 3 HYPERLINK l _Toc178740826 3.2VSS PAGEREF _Toc178740826 h 3 HYPERLINK l _Toc17874

9、0827 4防火墙系统构成 PAGEREF _Toc178740827 h 3 HYPERLINK l _Toc178740828 4.1需求分析 PAGEREF _Toc178740828 h 3 HYPERLINK l _Toc178740829 4.2设计思路 PAGEREF _Toc178740829 h 4 HYPERLINK l _Toc178740830 4.3功能模块构成 PAGEREF _Toc178740830 h 4 HYPERLINK l _Toc178740831 4.4功能模块介绍 PAGEREF _Toc178740831 h 4 HYPERLINK l _Toc

10、178740832 4.4.1 过滤规那么添加删除功能模块 PAGEREF _Toc178740832 h 4 HYPERLINK l _Toc178740833 4.4.2 过滤规那么显示功能模块 PAGEREF _Toc178740833 h 4 HYPERLINK l _Toc178740834 4.4.3 过滤规那么存储功能模块 PAGEREF _Toc178740834 h 5 HYPERLINK l _Toc178740835 4.4.4 文件存储功能模块 PAGEREF _Toc178740835 h 5 HYPERLINK l _Toc178740836 4.4.5 文件载入功

11、能模块 PAGEREF _Toc178740836 h 5 HYPERLINK l _Toc178740837 4.4.6 安装卸载功能摸块 PAGEREF _Toc178740837 h 5 HYPERLINK l _Toc178740838 4.4.7 IP封包过滤驱动功能模块 PAGEREF _Toc178740838 h 5 HYPERLINK l _Toc178740839 5防火墙设计 PAGEREF _Toc178740839 h 5 HYPERLINK l _Toc178740840 5.1程序关键类 PAGEREF _Toc178740840 h 5 HYPERLINK l

12、_Toc178740841 5.1.1 应用程序类CFireWallAPP PAGEREF _Toc178740841 h 5 HYPERLINK l _Toc178740842 5.1.2 主框架类CMainFrame PAGEREF _Toc178740842 h 5 HYPERLINK l _Toc178740843 5.1.3 文档类CFireWallDoc PAGEREF _Toc178740843 h 6 HYPERLINK l _Toc178740844 5.1.4 视图类CFireWallView PAGEREF _Toc178740844 h 7 HYPERLINK l _T

13、oc178740845 5.1.5 _RuleInfo类 PAGEREF _Toc178740845 h 7 HYPERLINK l _Toc178740846 5.2详细设计 PAGEREF _Toc178740846 h 8 HYPERLINK l _Toc178740847 5.2.1 主界面 PAGEREF _Toc178740847 h 8 HYPERLINK l _Toc178740848 5.2.2 添加过滤规那么 PAGEREF _Toc178740848 h 8 HYPERLINK l _Toc178740849 5.2.3 删除过滤规那么 PAGEREF _Toc17874

14、0849 h 11 HYPERLINK l _Toc178740850 5.3驱动程序设计 PAGEREF _Toc178740850 h 13 HYPERLINK l _Toc178740851 5.3.1 简介 PAGEREF _Toc178740851 h 13 HYPERLINK l _Toc178740852 5.3.2 结构图 PAGEREF _Toc178740852 h 14 HYPERLINK l _Toc178740853 5.3.3 该驱动的优点 PAGEREF _Toc178740853 h 14 HYPERLINK l _Toc178740854 5.3.4 本程序的

15、驱动设计 PAGEREF _Toc178740854 h 14 HYPERLINK l _Toc178740855 6程序测试 PAGEREF _Toc178740855 h 16 HYPERLINK l _Toc178740856 结 论 PAGEREF _Toc178740856 h 18 HYPERLINK l _Toc178740857 参考文献 PAGEREF _Toc178740857 h 19 HYPERLINK l _Toc178740858 致 谢 PAGEREF _Toc178740858 h 20 HYPERLINK l _Toc178740859 声 明 PAGEREF

16、 _Toc178740859 h 21引言课题背景防火墙是一种隔离技术,是一类防范措施的总称,利用它使得内部网络与Internet或者其他外部网络之间相互隔离,通过限制网络互访来保护内部网络。防火墙是建立在内部网络与外部网络之间的唯一平安通道,简单的可以只用路由器实现,复杂的可以用主机甚至一个子网来实现,它可以在IP层设置屏障,也可以用应用软件来阻止外来攻击。通过制定相应的平安规那么,可以允许符合条件的数据进入,同时将不符合条件的数据拒之门外,这样就可以阻止非法用户的侵入,保证内部网络的平安。本课题研究意义随着计算机技术和网络技术的开展,计算机网络给人们带来了很多便利,于此同时网络平安的问题也

17、伴随着网络技术的开展而日趋严重。使用防火墙能很好的提高系统的平安性,减少系统受到网络平安方面的威胁。本毕业设计选择开发一个Windows下的防火墙,它能够对网络IP数据包按照用户的设置进行过滤。通过此防火墙的开发锻炼了学生的实际动手能力对以后的学习和工作能力的培养具有重要意义。本课题研究方法本设计是使用VC+ 6.0的开发环境,运用IP过滤钩子驱动技术设计和实现的。本次毕业设计应首先分析防火墙的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,在设计中以需求分析为根底,写出系统开发方案、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计

18、文档。防火墙概述防火墙的定义防火墙是指设置在不同网络如可信任的企业内部网和不可信的公共网或网络平安域之间的一系列部件的组合。它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的平安保护。在逻辑上,防火墙是一个别离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的平安。防火墙是设置在被保护网络和外部网络之间的一道屏障,实现网络的平安保护,以防止发生不可预测的、潜在破坏性的侵入。防火墙本身具有较强的抗攻击能力,它是提供信息平安效劳、实现网络和信息平安的根底设施。防火墙的根本策略按照美国国家计

19、算机平安协会NCSA的建议,制定平安方案必须包括效劳访问策略和防火墙设计谋略。效劳访问策略应包括控制用户对某些Internet效劳的访问。另外,用户也需要限制访问的方式,如PPP或SLIP。在建立效劳访问政策时,需要注意两个方式:1、不允许从Internet上访问到用户的网络,但是允许个别用户设定得到的网络访问有限Internet站点。但必须进行地址伪装;2、允许有限的从Internet上访问到公司网络,如从Internet上只能访问公司的WWW和FTP效劳器。作为防火墙策略,就是定义实现效劳访问策略的具体规那么。在实现防火墙策略时,用户可以采用以下两个原那么之一:1、除了允许的事件之外,拒绝

20、其它的任何事件。2、除了拒绝的事件之外,允许其它的任何事件。制定的策略是由一条条规那么构成的,防火墙的规那么可分为三条链:输入链、输出链和转发链。包过滤防火墙数据包数据包是指IP网络消息。IP标准定义了在网上两台计算机之间发送的消息的结构.结构上,一个包包含了一个信息头和应被传送数据的一段消息体。Linux中包含的IP防火墙机制3种IP消息类型:ICMP(Internet控制消息协议)、UDP(用户数据报协议)和 TCP(传输控制协议)。所有的IP包头包含了源、目的IP地址、IP协议消息类型。包头里根据协议类型还包括了不同的字段。ICMP数据包包含了一个类型字段,用来标识控制或状态消息类型。U

21、DP和TCP包包含了源和目的效劳端口号。包过滤防火墙的工作原理采用这种技术的防火墙产品,通过在网络中的适当位置对数据包进行过滤,根据检查数据流中每个数据包的源地址、目的地址、所有的TCP端口号和TCP链路状态等要素,然后依据一组预定义的规那么,以允许符合逻辑的数据包通过防火墙进入到内部网络,而将不符合逻辑的数据包加以删除。因为路由器通常分布在有不同平安需求和平安策略的网络的交界处,因此可以通过在路由器上使用包过滤在可能的情况下实现只允许授权网络的数据进入。在这些路由器上使用包过滤师一种比拟经济的在现有路由根底结构上增加防火墙功能的机制。顾名思义,包过滤在路由过程中对指定包进行过滤丢弃。对过滤的

22、判断通常基于单个包的头部所包含的内容例如源地址,目的地址,协议,端口等。包过滤防火墙通常在操作系统内部实现,并且操作在IP网络和传输协议层。它在对基于IP包头信息实施过滤后,通过对包的路由作决策来保护系统。包过滤防火墙由一组接受或禁止规那么列表组成。这些规那么明确定义了哪个包将被允许或不允许通过网络接口。防火墙规那么使用在上面描述的包头字段来决定是否允许路由一个包通过,以到达它的目的,或那么无声息的将包丢弃掉,或阻止包并向它的发送机器返回一个错误状态。这些规那么是基于特定的网络接口卡和主机IP地址、网络层源和目的IP地址、传输层TCP和UDP效劳端口、TCP连接标志、网络层ICMP消息类型及这

23、些包是进入的还是发出的。包过滤功能是所有的防火墙都具备的一个根本功能,实际上防火墙要完成的功能从根本上来说,就是要按照用户的要求来控制网络所流通的数据包,屏蔽那些无益的连接。开发工具Visual C+ 6.0Visual C+6.0 是微软98 年推出的产品,它提供了强大的编译能力以及良好的界面操作性。能够对Windows 9x、Windows NT 以及Windows 2000 下的C+程序设计提供完善的编程环境。同时Visual C+6.0 对网络、数据库等方面的编程也都提供相应的环境支持。VSS版本控制是工作组软件开发中的重要方面,它能防止意外的文件丧失、允许反追踪到早期版本、并能对版本

24、进行分支、合并和管理。在软件开发和您需要比拟两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。 VSS可以同 Visual Basic、Visual C+、Visual J+、Visual InterDev、Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起,提供了方便易用、面向工程的版本控制功能。Visual SourceSafe 可以处理由各种开发语言、创作工具或应用程序所创立的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和工程级进行工作。Visual SourceSafe 面向工程的特性能更有效地管理工作组应用程序开发

25、工作中的日常任务。防火墙系统构成需求分析该防火墙的主要功能是实现包过滤,其他功能主要包括以下几个方面。1、能设置过滤规那么,包括:IP地址、子网掩码、端口号、协议。2、能添加删除规那么。3、能将过滤规那么保存。4、能对过滤规那么进行安装和卸载操作,即:将规那么发送给IP过滤驱动或从IP过滤驱动中删除规那么。5、能正确完整的显示所添加的过滤规那么。设计思路根据程序的需求来完成功能和模块化设计的思想,总体设计思路如下:任何程序都必须具有和用户进行信息交互的功能,因此用户接口部必须考虑,根据功能要求,该局部应具备:用户操作的功能菜单、能对过滤规那么进行设置、显示规那么界面、添加规那么界面。这样程序的

26、功能模块应该有:过滤规那么添加删除功能模块,过滤规那么显示功能模块,过滤规那么存储功能模块,文件储存功能模块,安装卸载规那么功能模块。功能模块构成功能模块构成如图1。包过滤防火墙过滤规那么添加删除功能模块过滤规那么显示功能模块过滤规那么存储功能模块文件储存功能模块文件载入功能模块安装卸载功能模块IP封包过滤驱动功能模块图1 功能模块图功能模块介绍过滤规那么添加删除功能模块包过滤防火墙要进行数据包过滤就需要按照用户定义的规那么进行包过滤,该功能模块就是使用户能够添加或删除过滤规那么。过滤规那么主要包括:源IP地址、子网掩码、端口号,目的IP地址、子网掩码、端口号,协议,以及对符合该规那么的数据包

27、是放行还是阻止进行设置。然后将设置好的规那么添加到存储功能模块。过滤规那么显示功能模块该功能用于显示用户添加的规那么,能够对每一条规那么进行删除、安装、卸载的操作,使防火墙过滤规那么能够很详细的显示给用户。过滤规那么存储功能模块该功能用于存储用户添加的过滤规那么,接受用户对每一条规那么的操作,并按照用户的操作将规那么进行处理。如:安装规那么,那么把用户选择的规那么安装到IP过滤驱动,IP接收到此规那么后按照此规那么进行数据包过滤。文件存储功能模块使用户添加的过滤规那么能够保存成文件的形式方便储存,在用户添加规那么后可以选择某一条规那么进行保存,防火墙会将该规那么保存为后缀名为.rul的文件,在

28、下次翻开防火墙的时候可以直接加载该规那么。文件载入功能模块相对于文件储存功能模块,该功能是实现用户可以导入一个后缀名为.rul的并且保存了有效规那么的文件。安装卸载功能摸块防火墙要过滤数据包,就需要将IP过滤驱动按照定义的规那么进行过滤。用户通过添加规那么将规那么存储于防火墙的存储功能模块中,想要将规那么发送给IP过滤驱动,就需要对该规那么进行安装。安装和卸载的功能就是将过滤规那么传送给IP过滤驱动或是将已安装的规那么从过滤驱动中删除。IP封包过滤驱动功能模块该功能模块是整个包过滤防火墙的核心局部,IP封包过滤驱动能按照用户定义的规那么对数据包做出阻止或是放行的选择。防火墙设计程序关键类应用程

29、序类CFireWallAPP每个MFC应用程序都必须包括一个从CWinApp派生的应用程序类,在本程序中的应用程序类就是CFireWAllApp。应用程序类构成了应用程序的主执行线程,它封装了一个Windows应用程序的初始化、运行和终止。主框架类CMainFrame主框架类CMainFrame构成整个程序的框架,包括菜单、工具、按钮等。它构成了程序功能的主框架。下面列出了CmainFrame类中的主要方法和变量。class CMainFrame:public CFrameWndprotected:BOOL Installed;/规那么安装标志TRUE-已安装,FALSE-未安装protect

30、ed: BOOL started;/开始过滤的标志,TRUE-已开始,FALSE-未开始TDriver filterDriver;/定义一个TDriver类的变量,TDriver ipFltDrv;/protected:BOOL AddFilterToFw();/AddFilterToFw完成将过滤钩子安装到防火墙的功能。/AFX_MSG(CMainFrame)afx_msg void OnAppExit();/退出程序afx_msg void OnButtonadd();/添加规那么按钮afx_msg void OnButtondel();/删除规那么按钮afx_msg void OnBut

31、tonstart();/开始过滤按钮afx_msg void OnButtonstop();/停止过滤按钮afx_msg void OnButtonInstall();/安装规那么afx_msg void OnButtonuninstall();/卸载规那么afx_msg void OnMenuAddRule();/添加规那么菜单afx_msg void OnMenuDelRule();/删除规那么菜单afx_msg void OnMenuInstallRules();安装菜单afx_msg void OnMenuUninstallRules();/卸载规那么菜单afx_msg void On

32、MenuStart();/开始过滤菜单afx_msg void OnMenuStop();/停止过滤菜单afx_msg void OnMenuSaveRules();/保存规那么菜单afx_msg void OnMenuLoadRules();/加载规那么菜单/AFX_MSG;在主框架类CMainFrame中定义了应用程序的所有根本功能。文档类CFireWallDocMFC程序中的文档类是用来存储数据变量的。在本程序中CFireWallDoc主要用来存储用户添加的规那么,当用户添加规那么或删除规那么时,就要向文档类CFireWallDoc中写入数据;当视图类CFireWallView需要将用户

33、添加的规那么显示在规那么列表时,或者将规那么安装到驱动,就需要从文档类CFireWallDoc中读取数据。class CFireWallDoc:public CDocumentpublic:unsigned int nRules;/规那么序数RuleInfo rulesMAX_RULES;/最大规那么数int AddRule();/添加规那么void DeleteRule(unsigned int position);/删除规那么void ResetRules();/重置规那么,即在加载规那么前,需要删除规那么列表中及存储在文档类CFireWallDoc中的所有规那么;其中RuleInfo r

34、uleMAX_RULES是_RuleInfo结构体的一个变量,该数组用来存储规那么,_RuleInfo类详细情况见5.1.5节介绍。视图类CFireWallView视图类一般是用来显示信息的,在本程序中,CFireWallView主要用来在规那么列表中显示存储在文档类CFireWallDoc中的规那么。class CFireWallView:public CFormViewpublic:CFireWallDoc* GetDocument();/指针指向文档类,和文档类CFireWallDoc关联。/AFX_VIRTUAL(CFireWallView)public:protected:virtu

35、al void OnInitialUpdate();/在这个函数中初始化规那么列表/AFX_VIRTUALpublic:void UpdateList();/更新规那么列表,和Doc文档类保持一致protected:void AddRuleToList();/将文档类CFireWallDoc中的规那么显示出来;_RuleInfo类_RuleInfo类是用来定义过滤规那么的数据结构。typedef struct _RuleInfounsigned long sourceIp;unsigned long sourceMask;unsigned short sourcePort;unsigned l

36、ong destinationIp;unsigned long destinationMask;unsigned short destinationPort;unsigned int protocol;int action;RuleInfo,*PRuleInfo;详细设计主界面程序主界面如图2。图2 程序主界面添加过滤规那么添加过滤规那么的功能是通过一个“添加规那么对话框完成,如图3。 图3 添加规那么对话框添加规那么功能是将对话框中的规那么添加到存储数据的文档中。分两个步骤:1、取得添加规那么对话框中的数据:int result;UpdateData(TRUE);/使控件列表与控件关联res

37、ult=inet_addr(m_ipsource,&srcIp);/从源IP地址编辑框获取源IP地址赋给srcIp。result = inet_addr(m_srcMask, &srcMask);/从源IP掩码编辑框获取源IP地址掩码赋给srcMask。result=inet_addr(m_ipdestination, &dstIp);/从目的IP地址编辑框获取目的IP地址赋给dstIp。result = inet_addr(m_dstMask, &dstMask);/从目的IP掩码编辑框获取目的IP掩码赋给dstMask。if(m_protocol = TCP)protocol = 6;el

38、se if(m_protocol = UDP)protocol = 17;else if(m_protocol = ICMP)protocol = 1;else if(m_protocol = 所有)protocol = 0;if(m_action = 放行)cAction = 0;elsecAction = 1;srcPort = m_portsource;/源端口dstPort = m_portDestination;/目的端口2、将取得的数据添加到文档类中:BOOL CFireWallDoc:AddRule(unsigned long srcIp,unsigned long srcMas

39、k,unsigned short srcPort, unsigned long dstIp,unsigned long dstMask,unsigned short dstPort,unsigned int protocol,int action)rulesnRules.sourceIp = srcIp;rulesnRules.sourceMask = srcMask;rulesnRules.sourcePort = srcPort;rulesnRules.destinationIp = dstIp;rulesnRules.destinationMask = dstMask;rulesnRul

40、es.destinationPort = dstPort;rulesnRtocol = protocol;rulesnRules.action = action;nRules+;return TRUE;实现添加规那么功能的程序流程图如图4。开始格式匹配?取得对话框中的数据将数据添加到Doc中弹出添加规那么对话框结束输入正确的规那么否是图4 添加规那么流程图删除过滤规那么删除规那么时,首先需要确定所要删除的规那么,再将其从文档类中删除,同时更新视图类的显示。当正在进行过滤时,那么要先停止过滤,才能删除规那么。删除规那么:void CMainFrame:OnButtondel()CFireWall

41、View *view = (CFireWallView *)GetActiveView();CFireWallDoc *doc = (CFireWallDoc *)GetActiveDocument();POSITION pos = view-m_rules.GetFirstSelectedItemPosition();/选中的规那么if(started = TRUE)/如果正在过滤CString strTemp;strTemp.Format(请先停止过滤);int position;position = view-m_rules.GetNextSelectedItem(pos);/posit

42、ion是当前选择的规那么的下一条的序数实现删除规那么功能的程序流程如图5。否开始取得当前选择的规那么正在过滤?调用DeleteRule()更新列表显示结束停止过滤是图5 删除规那么流程图其中调用DeleteRule()的代码为:CFireWallDoc *doco = (CFireWallDoc *)GetActiveDocument();/关联文档类doco-DeleteRule(position);/调用DeleteRule()函数删除规那么view-UpdateList();/更新规那么列表的显示void CFireWallDoc:DeleteRule(unsigned int posi

43、tion)if(position = nRules)return;if(position != nRules - 1)/如果删除的规那么不是最后一条,那么将它删除后,后面的规那么要往前移动unsigned int i;for(i = position + 1;im_rules.GetFirstSelectedItemPosition();/选中的规那么if(started = TRUE)/如果正在过滤CString strTemp;strTemp.Format(请先停止过滤);int position;position = view-m_rules.GetNextSelectedItem(po

44、s);/position是当前选择的规那么的下一条的序数实现删除规那么功能的程序流程如图5。否开始取得当前选择的规那么正在过滤?调用DeleteRule()更新列表显示结束停止过滤是图5 删除规那么流程图其中调用DeleteRule()的代码为:CFireWallDoc *doco = (CFireWallDoc *)GetActiveDocument();/关联文档类doco-DeleteRule(position);/调用DeleteRule()函数删除规那么view-UpdateList();/更新规那么列表的显示void CFireWallDoc:DeleteRule(unsigned

45、 int position)if(position = nRules)return;if(position != nRules - 1)/如果删除的规那么不是最后一条,那么将它删除后,后面的规那么要往前移动unsigned int i;for(i = position + 1;inRules;i+)rulesi - 1.sourceIp = rulesi.sourceIp;rulesi - 1.sourceMask = rulesi.sourceMask;rulesi - 1.sourcePort = rulesi.sourcePort;rulesi - 1.destinationIp = r

46、ulesi.destinationIp;rulesi - 1.destinationMask = rulesi.destinationMask;rulesi - 1.destinationPort = rulesi.destinationPort;rulesi - 1.protocol = tocol;rulesi - 1.action = rulesi.action;nRules-;DeleteRule()调用的流程图如图6。删除开始是最后一条规那么?后面规那么往前移删除结束取得当前规那么否是图6 DeleteRule()的调用驱动程序设计简介基于Firewall-Hook Driver的包

47、过滤驱动程序位于核心态,运行效率高,主要用于在IP过滤驱动中拦截所有的网络数据包,根据过滤规那么判别是否接收或发送数据包。同时处理上层应用程序发送的IRP,接收应用程序发送的过滤规那么等。安装过滤函数之前,先将过滤函数的地址填入IP_SET_FIREWALL_HOOK_INFO结构的FirewallPtr指针中,Add设置为TRUE,并指定该过滤函数优先级Priority,然后向IP设备发送IOCTL IOCTL_IP_SET_FIREWALL_HOOK控制码,这样就完成了过滤函数的安装。卸载过滤函数的时候只用把Add设置为FALSE就行了,其他参数和安装时一样。每个过滤函数可以设置一个优先级

48、,系统调用这些函数的时候按照优先级的顺序进行,直到某个函数返回“丢弃包为止。如果所有的过滤函数都返回“允许包,那么这个包才能顺利通过系统。可以把这些过滤函数想象成一个过滤链,所有的函数按照优先级排列,如果一个函数返回“丢弃包,这条过滤链就断开了。结构图驱动程序结构如图7。图7 驱动结构图该驱动的优点在 HYPERLINK :/ qqread /keywords/windows.html t _blank Windows中这不是开发防火墙的唯一方法,其它的有诸如 NDIS防火墙,TDI防火墙,Winsock分层防火墙,包过滤API等等。而Filter-Hook Driver的优点在于:1、 这种

49、方法所拥有的弹性可以使你过滤所有IP层或以上的通讯。但不能过滤更低层的头部数据,例如:不能过滤以太帧数据。需要用NDIS过滤器来做。2、 这是一种简单的方法。安装防火墙和执行过滤功能非常简单。但包过滤API(Packet Filtering API)更加容易使用,尽管它缺少弹性,例如不能处理包的内容,不能用包过滤API修改内容。本程序的驱动设计本程序驱动的设计核心是通过使用TDriver类向DrvFltIp驱动程序发送控制代码START_IP_HOOK、STOP_IP_HOOK、ADD_FILTER、CLEAR_FILTER,到达实现数据包过滤的目的。1、程序初始化时,调用LoadDriver

50、()加载DrvFltIp驱动:CMainFrame:OnCreate()ipFltDrv.LoadDriver(IpFilterDriver,System32DriversIpFltDrv.sys,NULL,TRUE);2、当用户单击“开始过滤按钮时,程序向驱动发送START_IP_HOOK控制代码,开始过滤:CMainFrame:OnButtonstart()filterDriver.WriteIo(START_IP_HOOK,NULL,0);3、当用户单击“停止过滤按钮时,程序向驱动发送START_IP_HOOK控制代码,停止过滤:CMainFrame:OnButtonstop()filt

51、erDriver.WriteIo(STOP_IP_HOOK,NULL,0);4、当用户单击“安装规那么按钮时,程序向驱动发送ADD_FILTER控制代码:CMainFrame:OnButtonInstall()AddFilterToFw();AddFilterToFw()filterDriver.WriteIo(ADD_FILTER, &pf, sizeof(pf);5、当用户单击“卸载规那么按钮时,程序向驱动发送CLEAR_FILTER控制代码:CMainFrame:OnButtonuninstall()filterDriver.WriteIo(CLEAR_FILTER, NULL, 0);

52、程序测试计算机位于网关地址为的局域网内,本地IP地址为:5。通过局域网连接于外部网络,可以PING通本地网关地址和电信DNS效劳器地址9,如图8和图9。图8 PING 图9 Ping 9运行防火墙,点击“添加按钮进行过滤规那么设置,如图10。源地址: 目的地址5端口号:0所有端口协议:由于PING命令基于ICMP协议,所以协议选择:ICMP行为:丢弃图10 添加规那么图点击“添加按钮将规那么保存到防火墙:如图11。图11 规那么示图点击“安装防火墙将过滤规那么添加到过滤驱动,点击“开始防火墙开始按照规那么进行数据包过滤,如图12。图12 开始过滤图由图12可以看出原来本地计算机可以和本地网关路

53、由器进行ICMP数据包收发,也能和电信DNS效劳器进行数据包收发。而当防火墙设置为过滤源地址为、协议为ICMP的规那么之后运行,本地计算机将不能和本地网关路由器进行数据包收发,PING命令显示为“Request timed out。但是本地计算机还能和电信DNS效劳器9进行数据收发。结 论此防火墙操作简单,能够实现包过滤功能。按照用户设置的规那么进行数据包过滤。能运行于Windows系统,屏蔽不平安的站点、对进出的网络数据进行过滤,在一定程度上提高了系统的平安性,可有效的防止计算机受到外部网络攻击。此防火墙的开发是在了解和熟悉了TCP、UDP、ICMP协议以及IP封包过滤驱动的根底上,运用VC

54、+这一编程语言来开发的。相对于互联网上的知名防火墙相比整个防火墙还不成熟,但它具有操作简单明了的特点。在以后的学习中随着自身技术的提高,我会进一步完善整个防火墙,使它具有更多的功能对计算机平安起到更好的作用。通过这次毕业设计的编程,使我对网络编程和防火墙技术有了新的认识,同时我也对VC+这一编程语言有了更深的了解。对以后的学习和工作都有很大的帮助。 HYPERLINK 论文格式摸板(2007).doc 参考文献1 张越.Visual C+网络程序设计实例详解M.北京:人民邮电出版社,2003。2 Keith E.Strassberg,Richard J.Gondek.防火墙技术大全M.北京:机

55、械工业出版社,2003。3 朱雁辉.Windows防火墙与网络封包截获技术M.北京:电子工业出版社,2002。4 黎连业,张维.防火墙及其应用技术M.北京:清华大学出版社,2004。5 Steven Holzner.Visual C+ 6.0轻松进阶M.北京:电子工业出版社,2005。6 John E.Swanke.Visual C+MFC编程实例M.北京:机械工业出版社,2005。7 张海棠.Visual C+ 6.0编程指南M.北京:航空工业出版社,2002。致 谢本文是在索望老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完本钱课题起到了极大的作用。在此向他

56、表示我最衷心的感谢!在论文完成过程中,本人还得到了王守兵同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!作者简介:姓 名:刘钟 性别: 男出生年月:1982年3月 民族: 汉E-mail:egoddess5163 声 明本论文的工作是 2007年2月至2007年6月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。关于学位论文使用权和研究成果知识产权的说明:本人完全了解成都信息工程学院

57、有关保管使用学位论文的规定,其中包括:1学校有权保管并向有关部门递交学位论文的原件与复印件。2学校可以采用影印、缩印或其他复制方式保存学位论文。3学校可以学术交流为目的复制、赠送和交换学位论文。4学校可允许学位论文被查阅或借阅。5学校可以公布学位论文的全部或局部内容保密学位论文在解密后遵守此规定。除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。特此声明! veother case beincurable. If any one convict in a court of law a stranger or aslave of a theft of public pr

58、operty, let the court determine whatpunishment he shall suffer, or what penalty he shall pay, bearing inmind that he is probably not incurable. But the citizen who has beenbrought up as our citizens will have been, if he be found guilty ofrobbing his country by fraud sold anyadulterated goods, in ad

59、dition to losing the goods themselves, shallbe beaten with stripes-a stripe for a drachma, according to theprice of the goods; and the herald shall proclaim in the agora theoffence for which he is going to be beaten. The warden of the agoraand the guardians of the law shall obtain information from e

60、xperiencedpersons about the rogueries and adulterations of the sellers, andshall write up what the seller ought and ought not to do in each case;and let them inscribe their laws on a column in front of the courtof the wardens of the agora, that they may be clear instructors ofthose who have business

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论