电大论文 计算机网络论文主机防火墙软件系统的开发与设计.docx
《电大论文 计算机网络论文主机防火墙软件系统的开发与设计.docx》由会员分享,可在线阅读,更多相关《电大论文 计算机网络论文主机防火墙软件系统的开发与设计.docx(31页珍藏版)》请在冰点文库上搜索。
电大论文计算机网络论文主机防火墙软件系统的开发与设计
主机防火墙软件系统的开发与设计
论文作者姓名:
申请学位专业:
申请学位类别:
指导教师姓名(职称):
论文提交日期:
2010年11月1日
主机防火墙软件系统的开发与设计
摘要
当今时代是飞速发展的信息时代,计算机与信息处理技术日渐成熟。
随着Internet和计算机网络技术的蓬勃发展,网络安全问题现在已经得到普遍重视。
网络防火墙系统就是网络安全技术在实际中的应用之一。
本设计实现的防火墙采用IP过滤钩子驱动技术,过滤钩子驱动是内核模式驱动,它实现一个钩子过滤回调函数,并用系统提供的IP过滤驱动注册它,IP过滤驱动随后使用这个过滤钩子来决定如何处理进出系统的数据包。
本防火墙由以下几个模块组成:
过滤规则添加模块,过滤规则显示模块,过滤规则存储模块,文件储存模块,安装卸载规则模块,IP封包过滤驱动功能模块。
用户只需要通过主界面菜单和按钮就可以灵活地操作防火墙,有效地保护Windows系统的安全。
关键词:
防火墙;过滤钩子;过滤驱动;包过滤
TheDesignandImplementofhostFirewall
Abstract
Thecurrenteraisarapiddevelopmentofinformationage.Thetechnologiesofcomputerandinformationprocessingbecomematurity.WiththeInternetandcomputernetworktechnologytobeflourishing,networksecuritythathasbeenwidelyconcerned.Firewallsystemisoneofthesecuritytechnologiesthatusedinthenetwork.ThisdesignhasimplementedafirewalladoptingtheIPfilter-hookdrivertechnology;it’sdriventhroughthekernelmode,thefilter-hookcallbackfunctionhasbeenimplementedandthefilter-hookdriverisregisteredbytheIPfilterdriverwhichisprovidedbysystem.TheIPfilterdriverusesthefilter-hooktohandlethedatapacketsinandout.Thefirewalliscomposedofthefollowingmodules:
addingfilterrulesmodule,displayfilterrulesmodule,storagefilterrulesmodule,storagefilemodule,installationandunloadingrulesmodule,IPpacketdrivermodule.Userscanfinishtheoperationbyusingmainmenuandbuttonandprotectthesystemeffectively.
Keywords:
Firewall;Filter-Hook;FilterDriver;PacketFiltering
1引言
1.1课题背景
防火墙是一种隔离技术,是一类防范措施的总称,利用它使得内部网络与Internet或者其他外部网络之间相互隔离,通过限制网络互访来保护内部网络。
防火墙是建立在内部网络与外部网络之间的唯一安全通道,简单的可以只用路由器实现,复杂的可以用主机甚至一个子网来实现,它可以在IP层设置屏障,也可以用应用软件来阻止外来攻击。
通过制定相应的安全规则,可以允许符合条件的数据进入,同时将不符合条件的数据拒之门外,这样就可以阻止非法用户的侵入,保证内部网络的安全。
目前,随着网络向各个领域的扩展,网络安全的重要性日益被人们所认知。
ISP提供商担心网络被攻击,因为这种事情发生太频繁;使用网上交易的用户担心帐户密码被盗,因为窃取密码的工具比比皆是;软件公司担心源代码泄露,就连微软也没逃脱厄运。
种种现象都表明网络安全越来越重要,这种事情随时都可能发生在我们自己身上。
这也正是网络安全快速发展的原因。
所以防火墙和防病毒软件格外的重要,也被现在的人们强烈的需要。
现在防火墙的花样与种类繁多,让人眼花缭乱。
但是防火墙的主要功能是防止外部网络的攻击以达到保护主机的目的。
我认为哪些未知的网络IP可能对主机产生攻击可能我们都不知道。
只要试验过才知道。
所以现在防火墙一般与防病毒软件配合使用。
这样才能安全的保护主机。
实现的主要的核心功能如下定义:
1.根据应用程序访问规则可对应用程序连网动作进行过滤;
2.对应用程序访问规则具有自学习功能;
3.可实时监控、监视网络活动。
1.2本课题研究意义
随着计算机技术和网络技术的发展,计算机网络给人们带来了很多便利,于此同时网络安全的问题也伴随着网络技术的发展而日趋严重。
使用防火墙能很好的提高系统的安全性,减少系统受到网络安全方面的威胁。
本毕业设计选择开发一个Windows主机下的防火墙,它能够对网络IP数据包按照用户的设置进行过滤。
通过此防火墙的开发锻炼了学生的实际动手能力对以后的学习和工作能力的培养具有重要意义。
1.3本课题研究方法
本设计是使用VC++6.0的开发环境,运用IP过滤钩子驱动技术设计和实现的。
本次毕业设计应首先分析防火墙的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文档。
2防火墙概述
2.1防火墙的定义
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。
它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。
在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。
防火墙是设置在被保护网络和外部网络之间的一道屏障,实现网络的安全保护,以防止发生不可预测的、潜在破坏性的侵入。
防火墙本身具有较强的抗攻击能力,它是提供信息安全服务、实现网络和信息安全的基础设施。
2.2防火墙的基本策略
按照美国国家计算机安全协会(NCSA)的建议,制定安全计划必须包括服务访问策略和防火墙设计策略。
服务访问策略应包括控制用户对某些Internet服务的访问。
另外,用户也需要限制访问的方式,如PPP或SLIP。
在建立服务访问政策时,需要注意两个方式:
1、不允许从Internet上访问到用户的网络,但是允许个别用户(设定得到)的网络访问有限Internet站点。
但必须进行地址伪装;
2、允许有限的从Internet上访问到公司网络,如从Internet上只能访问公司的WWW和FTP服务器。
作为防火墙策略,就是定义实现服务访问策略的具体规则。
在实现防火墙策略时,用户可以采用以下两个原则之一:
1、除了允许的事件之外,拒绝其它的任何事件。
2、除了拒绝的事件之外,允许其它的任何事件。
制定的策略是由一条条规则构成的,防火墙的规则可分为三条链:
输入链、输出链和转发链。
2.3防火墙的基本特性
(一)内部网络和外部网络之间的所有网络数据流都必须经过防火墙
这是防火墙所处网络位置特性,同时也是一个前提。
因为只有当防火墙是内、外部网络之间通信的唯一通道,才可以全面、有效地保护企业网部网络不受侵害。
根据美国国家安全局制定的《信息保障技术框架》,防火墙适用于用户网络系统的边界,属于用户网络边界的安全保护设备。
所谓网络边界即是采用不同安全策略的两个网络连接处,比如用户网络和互联网之间连接、和其它业务往来单位的网络连接、用户内部网络不同部门之间的连接等。
防火墙的目的就是在网络连接之间建立一个安全控制点,通过允许、拒绝或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。
典型的防火墙体系网络结构如下图所示。
从图中可以看出,防火墙的一端连接企事业单位内部的局域网,而另一端则连接着互联网。
所有的内、外部网络之间的通信都要经过防火墙。
(二)只有符合安全策略的数据流才能通过防火墙
防火墙最基本的功能是确保网络流量的合法性,并在此前提下将网络的流量快速的从一条链路转发到另外的链路上去。
从最早的防火墙模型开始谈起,原始的防火墙是一台“双穴主机”,即具备两个网络接口,同时拥有两个网络层地址。
防火墙将网络上的流量通过相应的网络接口接收上来,按照OSI协议栈的七层结构顺序上传,在适当的协议层进行访问规则和安全审查,然后将符合通过条件的报文从相应的网络接口送出,而对于那些不符合通过条件的报文则予以阻断。
因此,从这个角度上来说,防火墙是一个类似于桥接或路由器的、多端口的(网络接口>=2)转发设备,它跨接于多个分离的物理网段之间,并在报文转发过程之中完成对报文的审查工作。
如下图:
(三)防火墙自身应具有非常强的抗攻击免疫力
这是防火墙之所以能担当企业内部网络安全防护重任的先决条件。
防火墙处于网络边缘,它就像一个边界卫士一样,每时每刻都要面对黑客的入侵,这样就要求防火墙自身要具有非常强的抗击入侵本领。
它之所以具有这么强的本领防火墙操作系统本身是关键,只有自身具有完整信任关系的操作系统才可以谈论系统的安全性。
其次就是防火墙自身具有非常低的服务功能,除了专门的防火墙嵌入系统外,再没有其它应用程序在防火墙上运行。
当然这些安全性也只能说是相对的。
目前国内的防火墙几乎被国外的品牌占据了一半的市场,国外品牌的优势主要是在技术和知名度上比国内产品高。
而国内防火墙厂商对国内用户了解更加透彻,价格上也更具有优势。
防火墙产品中,国外主流厂商为思科(Cisco)、CheckPoint、NetScreen等,国内主流厂商为东软、天融信、网御神州、联想、方正等,它们都提供不同级别的防火墙产品。
2.4防火墙的功能
防火墙最基本的功能就是控制在计算机网络中,不同信任程度区域间传送的数据流。
例如互联网是不可信任的区域,而内部网络是高度信任的区域。
以避免安全策略中禁止的一些通信,与建筑中的防火墙功能相似。
它有控制信息基本的任务在不同信任的区域。
典型信任的区域包括互联网(一个没有信任的区域)和一个内部网络(一个高信任的区域)。
最终目标是提供受控连通性在不同水平的信任区域通过安全政策的运行和连通性模型之间根据最少特权原则。
防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。
防火墙还可以关闭不使用的端口。
而且它还能禁止特定端口的流出通信,封锁特洛伊木马。
最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
1、网络安全的屏障
一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。
由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。
如防火墙可以禁止诸如众所周知的不安全的NFS协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。
防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。
防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。
2、强化网络安全策略
通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。
与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。
例如在网络访问时,一次一密口令系统和其它的身份认证系统完可以不必分散在各个主机上,而集中在防火墙一身上。
3、对网络存取和访问进行监控审计
如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。
当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。
另外,收集一个网络的使用和误用情况也是非常重要的。
首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。
而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。
4、防止内部信息的外泄
通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。
再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。
使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。
Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。
但是Finger显示的信息非常容易被攻击者所获悉。
攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。
防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。
2.5包过滤防火墙
2.5.1数据包
数据包是指IP网络消息。
IP标准定义了在网上两台计算机之间发送的消息的结构.结构上,一个包包含了一个信息头和应被传送数据的一段消息体。
Linux中包含的IP防火墙机制3种IP消息类型:
ICMP(Internet控制消息协议)、UDP(用户数据报协议)和TCP(传输控制协议)。
所有的IP包头包含了源、目的IP地址、IP协议消息类型。
包头里根据协议类型还包括了不同的字段。
ICMP数据包包含了一个类型字段,用来标识控制或状态消息类型。
UDP和TCP包包含了源和目的服务端口号。
2.5.2包过滤防火墙的工作原理
采用这种技术的防火墙产品,通过在网络中的适当位置对数据包进行过滤,根据检查数据流中每个数据包的源地址、目的地址、所有的TCP端口号和TCP链路状态等要素,然后依据一组预定义的规则,以允许合乎逻辑的数据包通过防火墙进入到内部网络,而将不合乎逻辑的数据包加以删除。
因为路由器通常分布在有不同安全需求和安全策略的网络的交界处,因此可以通过在路由器上使用包过滤在可能的情况下实现只允许授权网络的数据进入。
在这些路由器上使用包过滤师一种比较经济的在现有路由基础结构上增加防火墙功能的机制。
顾名思义,包过滤在路由过程中对指定包进行过滤(丢弃)。
对过滤的判断通常基于单个包的头部所包含的内容(例如源地址,目的地址,协议,端口等)。
包过滤防火墙通常在操作系统内部实现,并且操作在IP网络和传输协议层。
它在对基于IP包头信息实施过滤后,通过对包的路由作决策来保护系统。
包过滤防火墙由一组接受或禁止规则列表组成。
这些规则明确定义了哪个包将被允许或不允许通过网络接口。
防火墙规则使用在上面描述的包头字段来决定是否允许路由一个包通过,以达到它的目的,或则无声息的将包丢弃掉,或阻止包并向它的发送机器返回一个错误状态。
这些规则是基于特定的网络接口卡和主机IP地址、网络层源和目的IP地址、传输层TCP和UDP服务端口、TCP连接标志、网络层ICMP消息类型及这些包是进入的还是发出的。
包过滤功能是所有的防火墙都具备的一个基本功能,实际上防火墙要完成的功能从根本上来说,就是要按照用户的要求来控制网络所流通的数据包,屏蔽那些无益的连接。
3开发工具
3.1VisualC++6.0
VisualC++6.0是微软98年推出的产品,它提供了强大的编译能力以及良好的界面操作性。
能够对Windows9x、WindowsNT以及Windows2000下的C++程序设计提供完善的编程环境。
同时VisualC++6.0对网络、数据库等方面的编程也都提供相应的环境支持。
作为visualstudio的一个组件,可以通过安装visualstudio来获得
VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。
VC++应用程序的开发主要有两种模式,一种是WINAPI方式,另一种则是MFC方式,传统的WINAPI开发方式比较繁琐,而MFC则是对WINAPI再次封装,所以MFC相对于WINAPI开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WINAPI的相关内容为主线。
话说到这里可能更多人关心的是学习VC++需要具备什么条件,为什么对于这扇门屡攻不破呢?
要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。
VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在Windows平台无所不能。
最大缺点是开发效率不高。
VC适用范围
1、VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底层的调用。
在VC里边嵌入汇编语言很简单。
2、VC主要用在驱动程序开发
3、VC执行效率高,当对系统性能要求很高的时候,可用VC开发。
4、VC主要适用于游戏开发
5、VC多用于单片机,工业控制等软件开发,如直接对I/O地址操作,就要用C++。
6、VC适用开发高效,短小,轻量级的COM组件,DLL。
比如WEB上的控件。
7、VC可以开发优秀的基于通信的程序。
8、VC可以开发高效灵活的文件操作程序。
9、VC可以开发灵活高效的数据库操作程序。
10、VC是编CAD软件的唯一选择!
包括AUTOCAD,UG的二次开发。
11、VC在多线程、网络通信、分布应用方面,VC++有不可比拟的优势。
3.2VSS
版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。
在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。
VSS可以同VisualBasic、VisualC++、VisualJ++、VisualInterDev、VisualFoxPro开发环境以及MicrosoftOffice应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。
VisualSourceSafe可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。
在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。
VisualSourceSafe面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。
VisualSourceSafe是一种版本控制系统产品,它提供了还原点和并行协作功能,从而使应用程序开发组织能够同时处理软件的多个版本。
该版本控制系统引入了签入和签出模型,按照该模型,单个开发人员可以签出文件,进行修改,然后重新签入该文件。
当文件被签出后,其他开发人员通常无法对该文件进行更改。
通过源代码管理系统,开发人员还能够回滚或撤消任何随后产生问题的更改。
作为一种版本控制系统,VisualSourceSafe能够:
●防止用户无意中丢失文件。
●允许回溯到以前版本的文件。
●允许分支、共享、合并和管理文件版本。
●跟踪整个项目的版本。
●跟踪模块化代码(一个由多个项目重用或共享的文件)。
独立开发人员和小型开发团队已经发现,版本控制能够使他们保持内心的宁静并提高工作效率,从而使他们受益。
VisualSourceSafe是一种版本控制产品,主要致力于维护文件更改历史记录、审核跟踪日志以及对源代码文件进行灾难恢复。
它在以下场合下最为有效:
团队的规模较小,各个成员之间的地理距离比较近,通常在高度可靠的环境中通过高速、低延迟的局域网(LAN)工作,并且共享的开发资产不大可能超过4GB。
VisualSourceSafe是一种仅用于客户端的文件服务器应用程序,不需要服务器端处理或代码执行。
VSS虽然是微软公司的产品,但微软内部却很少使用它。
微软内部使用一个名为SLM的版本控制系统,直至1999年。
之后,微软内部改以使用修改自Perforce的SourceDepot。
4防火墙系统构成
4.1需求分析
该防火墙的主要功能是实现包过滤,其他功能主要包括以下几个方面。
1、能设置过滤规则,包括:
IP地址、子网掩码、端口号、协议。
2、能添加删除规则。
3、能将过滤规则保存。
4、能对过滤规则进行安装和卸载操作,即:
将规则发送给IP过滤驱动或从IP过滤驱动中删除规则。
5、能正确完整的显示所添加的过滤规则。
4.2设计思路
根据程序的需求来完成功能和模块化设计的思想,总体设计思路如下:
任何程序都必须具有和用户进行信息交互的功能,因此用户接口部必须考虑,根据功能要求,该部分应具备:
用户操作的功能菜单、能对过滤规则进行设置、显示规则界面、添加规则界面。
这样程序的功能模块应该有:
过滤规则添加删除功能模块,过滤规则显示功能模块,过滤规则存储功能模块,文件储存功能模块,安装卸载规则功能模块。
4.3功能模块构成
功能模块构成如图1。
图1功能模块图
4.4功能模块介绍
4.4.1过滤规则添加删除功能模块
包过滤防火墙要进行数据包过滤就需要按照用户定义的规则进行包过滤,该功能模块就是使用户能够添加或删除过滤规则。
过滤规则主要包括:
源IP地址、子网掩码、端口号,目的IP地址、子网掩码、端口号,协议,以及对符合该规则的数据包是放行还是阻止进行设置。
然后将设置好的规则添加到存储功能模块。
4.4.2过滤规则显示功能模块
该功能用于显示用户添加的规则,能够对每一条规则进行删除、安装、卸载的操作,使防火墙过滤规则能够很详细的显示给用户。
4.4.3过滤规则存储功能模块
该功能用于存储用户添加的过滤规则,接受用户对每一条规则的操作,并按照用户的操作将规则进行处理。
如:
安装规则,则把用户选择的规则安装到IP过滤驱动,IP接收到此规则后按照此规则进行数据包过滤。
4.4.4文件存储功能模块
使用户添加的过滤规则能够保存成文件的形式方便储存,在用户添加规则后可以选择某一条规则进行保存,防火墙会将该规则保存为后缀名为.rul的文件,在下次打开防火墙的时候可以直接加载该规则。
4.4.5文件载入功能模块
相对于文件储存功能模块,该功能是实现用户可以导入一个后缀名为.rul的并且保存了有效规则的文件。
4.4.6安装卸载功能摸块
防火墙要过滤数据包,就需要将IP过滤驱动按照定义的规则进行过滤。
用户通过添加规则将规则存储于防火墙的存储功能模块中,想要将规则发送给IP过滤驱动,就需要对该规则进行安装。
安装和卸载的功能就是将过滤规则传送给IP过滤