版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目校园网络防火墙系统的设计与实现_____学生姓名肖旭坤学号1213014060________所在学院物理与电信工程学院___________________专业班级电子1202班__________________________指导教师李菊叶_______________________________完成地点物电学院计算机信息处理分室____________2016年6月1日毕业论文﹙设计﹚任务书院(系)物电学院专业班级电子信息工程学生姓名肖旭坤__一、毕业论文﹙设计﹚题目校园网络防火墙系统的设计与实现______二、毕业论文﹙设计﹚工作自__2016__年_3_月10日起至_2016__年6月20日止三、毕业论文﹙设计﹚进行地点:物电学院计算机信息处理分室__四、毕业论文﹙设计﹚的内容要求:随着网络的普及,人们的日常交流和生活将越来越多的依靠网络来完成。无论是网上业务洽谈,还是网上购物,都不可防止地面临平安性问题。本设计要求学生对网络互连协议—TCP/IP协议存在的平安问题及Internet网的不平安性进行分析,并利用VisualC++作为开发工具,设计了一个基于包过滤技术的防火墙系统。五、毕业论文﹙设计﹚应收集资料及参考文献:[1]徐孝凯,张纪勇.C++面向对象程序设计:VC++6.0运行环境[M].天津大学出版社2009.[2]汪晓平,钟军.VC++网络通信协议分析与应用实现[M].北京:人民邮电出版社,2003.[3]王艳平,张越.Windows网络与通信程序设计[M].北京:人民邮电出版社,2006.[4]AndrewS.Tanenbau.计算机网络(第四版)[M].北京:清华大学出版社,2004.[5]谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2012.[6]朱桂英.张元亮VisualC++网络编程开发与实践[M].清华大学出版社.2013.六、毕业论文﹙设计﹚的进度安排:3月2日——3月29日:查阅资料,完成初步设计方案和开题报告。4月1日——4月26日:根据网络防火墙系统的工作原理,给出设计方案,及软件流程图。4月29日——5月24:并在软件环境下进行运行调试,进一步完善系统功能,整理资料;5月27日——6月7日:撰写、修改毕业设计论文。6月10日——6月15日:打印论文准备并完成辩论。指导教师签名系(教研室主任签名专业负责人签名批准日期校园网络防火墙系统的设计与实现肖旭坤〔陕西理工学院物理与电信工程学院电子信息工程专业,2012级2班,陕西汉中723000〕指导教师:李菊叶[摘要]随着互联网的普及,网络用户的日益增多。网络平安问题变得日趋重要,人们对于互联网的平安性也就越来越关注。防火墙的种类很丰富,本设计主要基于Filter-HookDriver回调函数与在VisualC++6.0的环境下对TCP/IP协议的漏洞进行分析,用IP识别并标记的规那么来实现包过滤,从而到达防火墙的效果。作为维护网络的平安性关键设施,防火墙采取在可靠与不可靠网络之间建立障碍的目的,并落实相应的平安策略。[关键字]防火墙;IP;VisualC++6.0;Filter-HookDriver;DesignandimplementationofcampusnetworkfirewallsystemXiaoXukun〔Grade12,Class02,Majorelectronicsandinformationengineering,SchoolofPhysicsandTelecommunicationEngineering,ShaanxiUniversityofTechnology,HanZhong723000,Shaanxi〕Tutor:LiJuyeAbstract:WiththepopularityofInternetandthegrowingnetworkusers.Networksecurityproblemiscoming,Increasinglyimportant,peoplearepayingmoreattentiononthesecurityofNetwork.TherearevariousFirewallonInternet.ThisdesignmainlyanalyzetheloopholesofTCP/IPprotocolandisbasedontheenvironmentofVisualC++6.0.ThroughIPrecognizingandmarkingrulesaccomplishingpacketfiltering,soasakindofFirewall.Asthekeyfacilitythatmaintainsthenetworksecurity,firewallstakethepurposeofstablinganobstaclebetweentrustandtrustlessnetwork,andputcorrespongdingsafetystrategyintopractice.Keywords:Firewall;IP;VisualC++6.0;Filter-HookDriver;目录1引言11.1背景11.2研究目的11.3开发环境及语言11.3.1VisualC++11.3.2开发语言VC++21.3.3Winsock21.4防火墙原理32防火墙的类型42.1防火墙的结构42.1.1Packetfilter52.1.2Proxy62.2防火墙的开展趋势和现状63防火墙技术的设计和实现73.1防火墙的设计73.1.1回调函数73.1.2程序的结构与类73.2程序流程图83.3设计的实现83.3.1Filter-HookDriver的注册8主程序框架的设计93.4设计细节114软件测试135结束语14致谢15参考文献16附录A17附录B221引言防火墙是在一个整体系统,他主要是设置在网络之间的平安区域内或是不同网络之间,它的作用是操控网络与网络之间的访问,可以根据设置的访问规那么控制网络信息的传输。它的本体也有相当程度的抗入侵能力[1]。防火墙必在保证内部网络运作的同时,防范未经同意的外部节点访问内部网络。虽然Firewall的类型有各种各样的。但就原理根本可以分为两类,一类基于Packetfilter〔包过滤型〕原理,另一种基于ProxyService〔代理效劳〕原理。区分他们的原理在于基于Packetfilter的防火墙一般来说直接将报文转发,它在用户是完全开放状态,速度较快,而基于Proxy的Firewall那么不是如此,它通过代理效劳来建立连接,它可以有更强的身份验证〔Authentication〕和注册〔log〕功能。1.1背景校园网是一个开放的、控制机构相对较弱的网络,恶意的攻击时常会侵入网络中的计算机系统。校园网的数据传输是基于TCP/IP通信协议进行的,这些协议缺乏使传输过程中的信息不被窃取的平安措施。校园网上的通信业务大多数使用的是Windows操作系统来支持,Windows操作系统中存在一定的平安脆弱性问题,会直接影响平安效劳。随着校园内计算机应用的大范围普及,介入校园网节点日益增多,而这些借点大局部都没有采取一定的保护措施,随时有可能造成病毒泛滥、信息丧失、数据损坏、网络被攻击、系统瘫痪等严重后果。1.2研究目的随着越来越多的校园网投入运行和连入Internet,校园网的平安管理问题越来越突出,为保证网络的平安性,保证信息和数据的平安性也同时保护了信息管理系统,必须确保有平安和坚强的防火墙系统。目前,防火墙产品在市面上有各种,“XX电脑管家等”这些产品都包含有包过滤功能和平安审核等功能,有些还有入侵监测、代理、IP转换、锁定地址等功能,性能能不一,但大多数都不是很廉价,为了节省开销,同时又要求网络的平安运行得意保障,因此,设计并实现经济实用的复合型多功能防火墙系统是最好的方法,应用实践证明,这样的系统在一定程度上能够保证校园网络的平安需求。1.3开发环境及语言本文中防火墙的开发使用的语言是C++和Winsock网络编程,使用的软件是VisualC++6.0。VisualC++VisualC++6.0,简称VC或者VC6.0,是Microsoft推出的一款C++编译器,将人用语言翻译为“机器语言”的应用程序。VisualC++是一个可视化软件开发工具并伴随有强大的辅助功能。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的更迭,VisualC++已成为专业软件工程师开发软件的首选。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它似乎有非常大的兼容性问题,只适用于Windows2000、WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台。VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境〔integrateddevelopmentenvironment,IDE〕。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导[2]。AppWizard、类向导ClassWizard等开发工具。这些工具通过一个被称为DeveloperStudio的组件整合为和谐的开发环境。主要局部:DeveloperStudio,这是一个高度集成开发平台,我们的工作99%都是依附于它完成的,由于它的标题是“MicrosoftVisualC++”,大多数人就直接认为,那便是VisualC++了。其实并不是这样,尽管DeveloperStudio提供了一个很完整的编辑器和Wizard,但事实上它没有编译和程序链接的功能,真正完成这些工作的。DeveloperStudio并不是用于VC专属的,它也同样可以用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio当成VisualC++,它充其量只能是算作VisualC++的一个壳子而已。这一点请切记!MFC。从理论上来讲,MFC也不是专属于VisualC++,BorlandC++,C++Builder和SymantecC++同样的可以处理MFC。同时,用VisualC++编写程序代码也并不一定要用MFC,只要可以,用VisualC++来编写SDK程序,或是使用STL,ATL,一样没有限制。不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展功能也是为MFC而设计的,所以用VisualC++而不用MFC就等于放弃了VisualC++中绝大的一局部功能。即使这样,VisualC++也不等于MFC。PlatformSDK。这才是VisualC++和整个VisualStudio的核心和灵魂,虽然我们很少能直接接触到它。大致说来,PlatformSDK是以MicrosoftC/C++编译器为精华〔不是VisualC++,看清楚了〕,配合MASM,辅以其他一些工具和文档资料[3]。1.3.2开发语言VC++底层开发最适合使用的是C语言,其与运行速度密不可分。运行在底层的程序要有很高的效率,C语言对于内存的处理具有这个能力。其中Winsock可以进行网络通信的编写。1.3.3Winsock从1991年的1.0版到1995年的版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套microsoftWindows下网络编程接口。它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。WindowsSockets标准本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供给商共同遵守。此外,在一个特定版本Windows的根底上,WindowsSockets也定义了一个二进制接口(ABI),以此来保证应用WindowsSocketsAPI的应用程序能够在任何网络软件供给商的符合WindowsSockets协议的实现上工作。因此这份标准定义了应用程序开发者能够使用,并且网络软件供给商能够实现的一套库函数调用和相关语义。遵守这套WindowsSockets标准的网络软件,我们称之WindowsSockets兼容的,而WindowsSockets兼容实现的提供者,我们称之为WindowsSockets提供者。一个网络软件供给商必须百分之百地实现WindowsSockets标准才能做WindowsSockets兼容。任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets接口。我们称这种应用程序为WindowsSockets应用程序。WindowsSockets标准定义并记录了如何使用API与Internet协议族(通常我们指的是TCP/IP)连接,要特别指出的是所有的WindowsSockets都对流的套接口和数据报的套接口支持。应用程序是调用WindowsSockets的API实现相互之间的通信。WindowsSockets还应用下层的网络通讯协议功能和操作系统的调用完成实际的通讯工作。套接口:通信的根底是套接口(Socket),一个套接口是通信的一端。在这一端上你可以找到与其对应的一个名字。一个正在被使用的套接口都有它的类型和与其相关的进程。套接口存在于通讯域中。通讯域是为了处理一般的线程通过套接口通讯而引进的一种抽象概念。套接口通常和同一个域中的套接口交换数据〔数据交换也可能穿越域的界限,但这时一定要执行某种解释程序〕WindowsSockets标准支持单一的通讯域,即Internet域。各种进程使用这个域互相之间用Internet协议族来进行通讯〔WindowsSockets1.1以上的版本支持其他的域,例如WindowsSockets2)。套接口可以根据通讯性质分类;这种性质对于用户是可见的。应用程序一般仅在同一类的套接口间通讯。不过只要底层的通讯协议允许,不同类型的套接口间也照样可以通讯。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流效劳。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接口接收信息的进程有可能发现信息重复了,或是和发出时的次序不同。数据报套接口的一个重要特征是它保存了记录边界。对于这一特征,数据报套接口应用了与现在许多包交换网络〔例如以太网〕非常相似的模型[4]。1.4防火墙原理防火墙是由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障,是一种获取平安性方法的形象说法,使得Internet与Internet之间建立起一个平安网关〔SecurityGateway〕,这样保护内部网系统免受非法用户的攻击。防火墙根本是由访问规那么、包过滤结构、应用网关和验证工具4个模块组成。防火墙就是一个位于计算机和它所连接的网络之间的系统。该计算机流入流出的所有网络通信均要经过此防火墙。网络中的“防火墙”是一项将和内部系统和外部公共网络〔如Internet〕区别开的的方法,实际上是一种将内部隔离在外部的技术。防火墙是在两个网络系统通信时执行的一种访问控制规那么,它能允许你“允许”的人和数据进入你的网络,同时将你“不允许”的人和数据挡在外面,最大程度地阻止公共网络中的恶意用户来访问你的网络。换句话说,如果不透过防火墙,公司内部系统网络的人就无法访问Internet,Internet上的人也不能与公司内部的人进行通讯[5]。2防火墙的类型常见的“防火墙”从原理上分有两类,分别是应用于网络层的防火墙和应用在应用层的防火墙。网络层防火墙:可以将网络层的防火墙视为一种对IP封包进行过滤的工序,运作在底层的TCP/IP协议堆栈段上。我们通过列举的方式,只让符合规定的数据包通过,其他的一律禁止通过防火墙。这些规那么一般是可以通过管理员自由定义或者自由修改的。但是有些防火墙系统也可能只能套用已经存储或是设置了的内置的规那么。我们也能以其他的角度来制定防火墙规那么,只要封包不符合任何一项“否认规那么”,就予以通过。现在的操作系统及网络设备根本上都已内置了防火墙的功能,版本性能比拟现金的防火墙能利用封包的多种属性来进行过滤,比方说源IP地址、源端口号、目的IP地址和目的端口号、效劳的类型等,也能经由通信的协议、TTL值、来源的网域名称或者网段等属性来进行过滤。应用层防火墙:应用层的防火墙是在TCP/IP堆栈的“应用层”上工作,你通过使用浏览器时所产生的数据流或是FTP时的数据流都是归属于这一层。应用层的防火墙可以拦截进入某应用程序的所有数据包,并且封锁其他的数据包〔通常是直接将封包丢弃〕。理论上,这一类的防火墙可以完全杜绝外部的数据入侵到受保护的系统中。防火墙通过监测所有的数据包并找出不符合规那么的局部,不过就实现而言,这个方法即繁锁又杂乱,故而大局部防火墙不会考虑以这种方法设计。XML防火墙是一种新形态的应用层防火墙[6]。2.1防火墙的结构分组包过滤技术的根底是网络中的分包传输技术。网络上的数据是分组以“包”的形式传输的,每个封包都包含数据的源地址、目的地址、TCP/UDP源端口和目的端口等信息。分组包过滤技术就是根据系统内部预先设计的过滤逻辑条件,查核数据流中的每一组数据,依据数据包的源地址、目标地址、TCP/UDP源端口号和目的端口号以及数据包头中的标志位来确定是否允许通过,拒绝非平安站点的数据的来源。通过采用这种技术的防火墙的核心在于包过滤算法的设计。例如:在以太网中,得到的数据包大致是如下结构:以太帧头14个字节,放在PUCHAR结构数组的第0个元素到第13个元素中,其中前六个字节是目的MAC地址,之后是六个字节源MAC地址,最后两个字节是协议类型,通常的协议类型有0x080x00->IP,0x080x06->ARP,0x080x35->RARP,所以,可以通过数组的第12个元素和第13个元素来判断协议类型,过滤规那么就是在这个根底之上建立。如果要过滤特定协议,只要在相应的字节读取数据,判断是否符合要过滤的规那么即可[7]。分组过滤技术的优点是逻辑简单、速度快、易于安装和使用,网络性能和透明性好且价格廉价,它通常安装在路由器上。路由器是内部网络与Internet连接必不可少的设备,因此在原有网络上增加这样的防火墙不需要很多额外的费用。分组过滤技术的缺点有二:一是非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行击;二是数据包的源地址、目的地址以及IP的端口号都在数据包的头部,很有可能被窃听或假冒,且由于不同操作系统环境下TCP和UDP端口号所代表的应用效劳协议类型有所不同,故兼容性差【7】。应用网关技术是建立在网络应用层上的协议过滤,它针对特别的网络应用效劳协议即数据过滤协议,并且能够对数据包分析并形成相关的报告。应用网关对某些易于登录和控制的输入输出通信环境进行严格控制,以防止内部数据被窃取。另外,应用层网关还负责对网络交流的信息进行记录,比方用户登录的时间,登录的网址,用户频繁使用的网络界面等。数据包过滤和应用网关防火墙之间拥有一个共通性,它们都是根据特定的逻辑判定来决定是否对数据包放行。如果满足逻辑条件,那么防火墙内和外的计算机系统之间建立直接联系,防火墙外的用户就有直接了解防火墙内部的网络结构和运行状态的时机,这有利于实施非法访问和攻击。应用网关技术的优点是可以在LAN机器上被透明配置、保护在一个或多个外部IP地址之后的许多机器,简化管理任务、用户到LAN的出入可以通过翻开和关闭NAT防火墙/网关上的端口来限制。应用网关技术的缺点是一旦用户从防火墙外连接了效劳,那么无法防止其蓄意活动。代理效劳也称链路级网关或TCP通道。它是针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,其特点是将所有跨越防火墙的网络通信链路分为两段。防火墙内外计算机系统间应用层的"链接",由两个终止代理效劳器上的"链接"来实现,外部计算机的网络链路只能到达代理效劳器,从而起到了隔离防火墙内外计算机系统的作用。此外,代理效劳也对过往的数据包进行分析、注册登记,形成报告,同时当发现被攻击迹象时会向网络管理员发出警报,并保存攻击痕迹。代理效劳技术的优点是使管理员拥有对LAN之外的应用程序和协议功能的控制权、某些代理效劳器可以缓存数据,因此当客户存取频繁请求的数据时,这些数据就可以从本地缓存调出而不必使用互联网连接,这有助于减少不必要的带宽用量、代理效劳可以被密切地监视和记录,从而允许在网络资源用量方面进行更严格的控制。代理效劳技术的缺点是代理通常是应用程序特有的〔HTTP、telnet等〕或在协议方面有限制的〔多数代理只能用于TCP连接的效劳〕、应用程序效劳无法在代理后面运行,因此用户的应用程序效劳器必须使用另一种网络保安措施、代理可能会成为网络的瓶颈,因为所有的请求和传输都要经过一个中介而不是让客户直接连接远程效劳【7】。2.1.1Packetfilter包过滤技术(IPFilteringorpacketfiltering)的技术依据在于利用路由器监视并将网络上流出流入的不符合规那么IP包进行过滤,拒绝发送和接受可以的数据包。因为Internet的网络链接很多都要应用路由器,所以Router成为内部与外部通信的必经端口,Router的制造商在Router上参加IP过滤功能,过滤用路由器也可以被称为包过滤路由器或筛选路由器〔PacketFilterRouter〕。一般的防火墙就是这样一个具备包过滤功能结构的简单路由器,这种Firewall应该是能够满足平安性要求的,但合理的前提是合理的规那么配置。可以一个或者一组包过滤数据规那么是否完全严密及是否必要是很难被人为判断或判定的,因此在平安要求较高的场合,一般还要配合应用其它的安保技术来加强平安性。包过滤技术是指网络设备〔路由器或防火墙〕根据包过滤规那么检查所接收的每个数据包,做出允许数据包通过或丢弃数据包的决定。包过滤规那么主要基于IP包头信息设置,包括如下内容:TCP/UDP的源或目的端口号协议类型:TCP、UDP、ICMP等源或目的IP地址数据包的入接口和出接口数据包中的信息如果与某一条过滤规那么相匹配并且该规那么允许数据包通过,那么该数据包会被转发,如果与某一条过滤规那么匹配但规那么拒绝数据包通过,那么该数据包会被丢弃。如果没有可匹配的规那么,缺省规那么会决定数据包是被转发还是被丢弃。简单包过滤:是对单个包的检查,目前大局部路由器商品都能够提供这样的功能,所以如果你已经拥有边界路由器,那么完全没有再购置一个具有简单包过滤的防火墙产品的必要。由于这类技术无法跟踪TCP的状态,所以对TCP协议的控制是有缺陷的,比方当你的这样的产品上设置了仅允许从内到外的TCP访问时,一些以TCP应答包的形式进行攻击。简单包过滤的产品由于其保护的不完善[8]。状态检测包过滤:利用特制的状态监测表跟踪每一对网络会话的状态,对每一个数据包的检查不仅根据规那么表,又考虑到数据包是否满足通信所处的状态。因此提供了对传输层更完整的控制能力。同时又因为一系列技术优化性能的采用,状态检测包过滤的性能也显然要比简单包过滤产品更优,尤其是在一些复杂规那么的大型网络上。优势:包过滤路由器能够协助保护整个网络系统。大局部Internet防火墙系统只需要一个包过滤路由器;它的运行速度快、执行效率高。进行包过滤所需要的时间很短或甚至不需要什么时间,因为包过滤路由器只对数据包报头相应的字段进行检查,一般情况下不查看数据报除报头外的内容,而且某些核心区域是由专门的硬件实现的,如果通信所需的负载适宜而且已经定义的过滤规那么很少的话,那么对路由器性能没有多大影响;包过滤路由器对于终端用户和应用程序是透明的。当数据包过滤路由器执行决定让数据包通行时,它和普通路由器没什么区分,甚至用户没有意识到它的存在,因此不需要专门的用户培训或在每主机上设置特别的软件。劣势:定义与配置包过滤器很大程度上是一项繁杂且很难的工作。因此网络管理员需要详细的学习和了解Internet各种类型的效劳、包头的格式和他们所希望的特定查找值的计算。假设是一定要支持复杂的过滤规那么要求的情况下,过滤规那么的集合可能会形成很复杂的情况,而且没有什么可以用来检验过滤规那么正确性的工具。路由器对数据包的吞吐量会与过滤数量成反比。路由器用来从每一个数据包中拿出目的IP地址、查询一个相对简单的路由表,然后将数据包正向运行到适当转发接口。如果可执行过滤,路由器还得对每个包执行一遍所有的过滤规那么【9】。这有可能造成CPU的资源的大量占用,而且可能会影响一个完全饱和的系统性能。2.1.2Proxy这种防火墙通过代理〔Proxy〕技术参加到一个有着TCP连接的全过程当中。数据包经由处理后从内部发出,就好比是给防火墙设置了一个外部网卡一般,从而可以到达将内部。这一种类型的防火墙被公认为网络平安性最可靠的防火墙。代理防火墙为它们所支持的协议提供全面的协议意识平安分析。相比于那些只考虑数据包头信息的产品,这使得它们能做出更平安的判定。例如,特定的支持FTP的代理防火墙,它能够监视实际流出命令通道的FTP命令,并能够停止任何禁止的活动。由于效劳器被代理防火墙所保护,而且代理防火墙允许协议意识记录,这使得识别攻击方法以及备份现有记录更容易。代理防火墙增加平安性也是要付出代价的。额外的代价是为每个会话建立两个连接所需的花费,加上应用层验证请求所需的时间,以及性能的降低。你可以将钱花费在代理效劳器上,但在真正的高带宽网络上仍有可能到达瓶颈。可能您会发现为您的网络正确安装以及配置所需的代理是困难的,还可能很难使VPN〔虚拟专用网〕通过代理防火墙工作。优势:代理的根底是将两个端口的直接通讯隔断并在中间建立起转发系统,任何的通信都要经由代理的转发,用户任何情况下都不可以建立直接的TCP连接,应用层经由协议的会话过程笔记满足代理的平安规那么要求,对于不同的应用协议,代理防火墙提供了不同的对应用层控制的能力供用户选择。可以这样说,状态监测包过滤技术标准了网络层和传输层的平安行为,而应用代理那么是标准了特殊的应用协议上的平安行为[10]。劣势:代理防火墙的技术开展远没有包过滤技术活泼,灵魂与精华上根本什么都没有变,仅仅是增添了不同种类的协议,为了克服代理技术种类相当有限的缺乏,多数代理防火墙也提供了状态检测包过滤的能力在同一时间,每当用户遇到的防火墙陌生的应用协议时,就通过使用包过滤的方式对其检查。但是目前很难将这两者的平安策略完全全结合在一起,所以复合型的产品一般情况下更难以配置和调试[10]。2.2防火墙的开展趋势和现状状态检测包过滤技术和代理这两种技术现在仍旧是防火墙市场中通常采用的主流技术,但这两种技术正在形成一种融合的趋势,演变的结果也许会导致一种新的结构名称的出现。在NetEye防火墙中以状态监测包过滤为根本创立了一种暂时称之为“流过滤”的结构,它根本的原理是防火墙处于外部包过滤的情况,运行在链路层或者IP层,在不违反规那么的情况下,两个端口可以直接的房分,不过对于随意一个不违反规那么的访问在防火墙内部都有两个层的会话且是完全独立的会话,数据是按照“流”的形态从一个会话去向另一个会话,因为防火墙对于应用层的策略部署在“流”的中间,因此可以在任何时候在应用层替代效劳器或者是客户端的会话通信,从而起到了和代理型防火墙类似的控制性功能,比方说网眼防火墙系统对于SMTP的处理,防火墙系统完成完全的对邮件的存储并且转发,并实现的各种攻击的防范功能[11]。“流过滤”的另一个优越的性能在于,占用资源更少且运行效率更加高效,假设是你需求一个能够支持数量相当之大的并发性访问,同时又需要有相当于代理技术的作用在应用层的防护能力的系统,“流过滤”结构是最好的选择。随着技术开展了这么多年,已经成为了网络信息平安中最为成熟的技术支持,是信息平安管理员手中最有效的盾牌。而且防火墙本身的核心思想与技术仍然在随着时代的开展而进步着,事实上,没有哪一个平安手段或是技术能够停工永久的保障,因为网络在进步,应用在进步,攻击的手段在变化。对于防火墙来说,技术的不断进步才是真实的保障。3防火墙技术的设计和实现要开发防火墙工具,需要现建立驱动程序。通过使用IP过滤驱动,可以开发出应用广泛的网络平安产品。在进行驱动开发时,大多数都是选择Filter-HookDriver。3.1防火墙的设计程序主要大致分为如下几个局部:载入IP协议过滤驱动程序Filter-HookDriver;在CAddRuleDlg类的函数OnAddsave()中添加过滤规那么,并用AddFilter()函数将此过滤规那么添加到Filter-HookDrvier中去;启动防火墙,进行数据包过滤;创立程序主窗体结构,在这之前与已经导入过滤规那么的Filter-HookDriver用PreCreateWindow()建立关系,提供可视化操作。3.1.1回调函数Filter-HookDriver是Windows2000、WindowsXP等系统自带的内核模式驱动,它的结构是一个典型的内核模式驱动结构。在Windows2000heWindowsXP中,在“System32\drivers”目录下的IPfiltdrv.sys是Microsoft提供的IP协议过滤驱动程序。它允许用户注册自己的IP数据报处理函数。在MSDN中有关于这方面内容的简短说明,位于Filter-HookDriverReference章节中。这一局部说明文档论述了Filter-Hook驱动程序实现的回调函数和该驱动程序用以注册回调函数的I/O控制码。回调函数是是这类驱动程序的主体局部。操作系统提供的IP过滤驱动程序使用这个过滤钩子来判断IP数据包的处理方式[12]。typedefPF_FOWORD_ACTION(*PacketFileterExtensionPtr)(unsignedchar*PacketHeader,unsignedchar*Packet,unsignedintPacketLength,unsignedintRecvInterfaceIndex,unsignedintSendInterfaceIndex,IPAddrRecvLinkNextHop,IPAddrSendLinkNextHop);该类型就是过滤钩子的回调函数,它决定所有传过来的IP数据包的命运——是继续传递,还是丢掉,或者允许IP过滤驱动程序继续处理。3.1.2程序的结构与类IPFilter是定义过滤规那么的结构体,此结构体将通常过滤数据包要考虑的包头信息都包括进去了。filterList规那么列表的建立。程序主要包括的类:CFireView、CAddRuleDlg、CAboutDlg、TDriver。在程序中,IP过滤协议驱动程序由TDriver类的LoadDriver()函数载入,同时完成对驱动程序的初始化,嵌入到Window中作为系统的效劳,而IP包处理函数通过启动IP过滤协议驱动程序函数StartDriver()和对IP过滤协议驱动程序进行I/P操作放入本类中[13]。完成核心的驱动载入,过滤规那么类后,显示程序界面用到的类是CFireView。3.2程序流程图查看过滤结果判断APP是否载入启动驱动效劳启动防火墙添加过滤规那么载入?载入Filter-HookDriver查看过滤结果判断APP是否载入启动驱动效劳启动防火墙添加过滤规那么载入?载入Filter-HookDriverNY防火墙开始过滤防火墙开始过滤NY图3.1防火墙运行流程图3.3设计的实现要实现防火墙的真正运行,驱动的注册是核心中的核心。3.3.1Filter-HookDriver的注册因为包过滤必须在驱动实现相应的过滤操作,所以首先需要在Microsoft提供的IP协议过滤驱动程序汇总注册自己的IP数据包函数,注册IP数据包处理函数后,一旦收到或者发送数据包时,IP协议驱动程序会自动调用注册的IP数据包处理函数,到达过滤目的。注册需经过这几个步骤:载入IP协议过滤驱动程序;创立效劳并用StartDriver启动效劳;跟防火墙程序交互,判断是否要执行过滤;完成操作后,防火墙的StopDriver函数停止效劳。过滤规那么的建立与过滤规那么导入进Filter-HookDriver。对过滤规那么的不同修改可以使导入进Filter-HookDriver的规那么实现不同功能。数据包过滤的根本步骤可以通过CAddRuleDlg类中的OnAddsave()说明:首先展开收到的数据包包头〔PacketHeader〕;检查数据包中的相关协议〔protocol〕,并于设定的过滤规那么进行比拟;如果协议一致,那么检查源和目的地址;如果协议是TCP,那么检查端口;最终决定该数据包是通过还是丢弃[14]。3.3.2主程序框架的设计根本程序的功能需要,设计如下几个框体:图3.2端口扫描器图3.3功能界面图3.4界面按钮执行后的应用程序界面为。图3.5主界面他们的控件及驱动程序代码在类CFirewall中,具体代码见附录:A。该APP和驱动之间的互通图关系图如下应用程序FireView.cppAddRuleDlg.cpp驱动程序Filter-Hook应用程序FireView.cppAddRuleDlg.cpp驱动程序Filter-HookDriverPreCreateWindowAddFilterDeviceIOControl图3.6驱动与应用交互原理其中,PreCreateWindow说明FireView.cpp首先载入驱动;AddFilter说明导入过滤规那么;3.4设计细节在IP协议过滤驱动程序与应用程序交互的过程中,有两个设计是务必要考虑的。缓存:在驱动程序接收到过滤规那么或APP回应后,起码有一个缓冲以便临时存储信息,再等待处理。缓存不需要很大,只要能在得到时间片之前缓冲区不溢出就可以了,实践中大约能存储几十个报文就行了[15]。缓冲的方式是一个先进先出的队列,考虑方便实现静态存储的环形队列,也就是说不必每次分配内存,而是一次性分配好一大块内存,做环形使用。上述方式是采用数组的方式组织缓冲,为每一个报文供给一个最大报文长度的空间。因为缓冲区数目有限,因此这种方式可以满足需要,如果要考虑到减少空间的浪费,那么可以按每个报文的实际长度存储,上面的算法便不能满足这种方式。在网卡接收IP报文发送过程中,驱动程序缓存报文,用时间通知应用层有报文需要处理,那么应用层可以通过IO方式或者共享内存方式取得此报文。事实证明,在100Mbps速率下,以上两种方式都可以满足需要,最为渐变的方式就是使用有缓冲的IO方式,不过IO方式因为一次只能发送一个报文,100Mbps网络速度下降为70%~80%,10Mbps不会有影响。也就是说,主机发出的最大速度只有70%的网络速度,这和应用程序发送不超过MTU的UDP数据报的速度是一样的,对TCP来说,由于是双向通信,损失更大,大约为40%~60%的速度。多数时候,我们考虑共享内存方式,因为减少了系统调用的开销可以防止速度下降,在进行通信时还必须注意数据包发送的速度控制。发送数据时对发送速度的控制:当向IP协议过滤驱动程序发送报文时。一般来说,驱动程序缓存这些报文,并且通知IP应用发送成功的状态,处理完毕后再进行抉择。如此,报文的存储速度要比网卡发送的速度快很多,可是IP应用将以存储的速度进行报文的发送。这样就会导致缓存的极具消耗,之后的数据报只好丢弃,这样一来,UDP不能正常的发送工作。TCP由于可以进行适应网络状况,仍旧可以在这种情况下工作,速度在70%左右[16]。因此,必须有一个方法防止这种状况。驱动将这些报文进行缓存,通知IP应用发送状态未决定。直到最后处理完毕再告诉IP应用完成了发送,这样协调了发送的速度。这样的方法也伴随一个问题就是驱动程序必须在发送超时的情况下放弃对这些缓冲报文的所有权。4软件测试软件测试结果如下列图,图4.1软件运行结果该软件与XP与2000系统下正常工作,可以进行IP识别并控制ping的通断。5结束语本设计基于Filter-HookDriver设计的数据包过滤防火墙,结合它的工作原理和特点,在WindowsXP/2000环境下使用Filter-HookDriver创立过滤函数,并利用设定好过滤规那么对访问的数据包进行过滤,实现防火墙的功能。优点是可以自选设定过滤规那么,阻止特定的IP地址和端,并且可以选择需要阻止的协议而到达保护系统平安的功能。本软件中的过滤规那么需要用户自己手动添加与注册,无法自动识别是缺乏之处,但IP的识别与ping隔断能力还是可以正常运行的。致谢毕业设计已经接近了尾声,这也意味着我的大学生活就要结束了,学生活一晃而过,回首走过的岁月,心中倍感充实,当我写完这篇毕业论文的时候,有一种如释重负的感觉,感慨良多。这次的毕业设计,对于培养我们理论联系实际的设计思想;训练综合运用机械设计和有关先修课程的理论,结合生产实际反系和解决工程实际问题的能力;稳固、加深和扩展有关机械设计方面的知识等方面有重要的作用。写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新、生活的开始。希望大家在将来的生活中继续追逐最初的梦想,永不放弃。参考文献[1]廖春盛.校园网络防火墙系统的设计与实现[J].华南师范大学学报,2000.[2]徐孝凯,张纪勇.C++面向对象程序设计:VC++6.0运行环境[M].天津大学出版社2009.[3]郎锐,罗发根.VisualC++网络通信程序开发指南[M].北京:机械工业出版社,2004[4]朱桂英,张元亮.VisualC++网络编程开发与实践[M].清华大学出版社,2013.[5]吴桂华.目前防火墙中的最新技术及开展[J].消费电子,2014.[6]MFry,AGhosh.ApplicationLayerNetworking[J]ComputerNetworks,1999.[7]裴衣非.计算机网络的平安屏障——防火墙技术的研究[J].科技信息,2009.[8]徐兵.网络防火墙结构[J].中国有线电视,2004[9]AndrewS.Tanenbau.计算机网络(第四版)[M].北京:清华大学出版社,2004.[10]曹斌,网络防火墙的体系结构[J].网络平安技术与应用,2001[11]王艳平,张越.Windows网络与通信程序设计[M].北京:人民邮电出版社,2006.[12]IETFRFC.networkAddresstranslate—FriendlyApplicationDesignGuidelines[S],1918.[13]胡晓军,高宏伟.编著VisualC++高级开发范例解析[M].电子工业出版社,2002.[14]IETFRFC2663.IPNetworkAddressTraslator(NAT)Terminologyandconsideration[S].[15]周明天,汪文勇.编著TCP/IP网络原理与技术[M]北京:清华大学出版社,1993.[16]D.D.Clark,D.L.ArchitecturalConsiderationforaNewGenerationofProtocol[S]Proc.ACMStgcomm,1990.附录A:ResearchofNetworkSecurityandFirewallsTechniquesNowwiththecomputernetworkande-commerceusedwidely,networksecurityhasbecomeanimportantproblemthatwemustconsiderandresolve.Moreandmoreprofessions.enterprisesandindividualssurferfromthesecurityproblemindifferentdegree.theyarelookingforthemorereliablesafetysolution.Inthedefensesystemadoptedbynetworksecurityatpresent,thefirewallsstandtheveryimportantposition.AllthefirewallshavethefunctiontofiltertheIPaddress.ThistaskcheckstheIPpacket,makesthedecisionwhethertoreleaseortoabandonitaccordingtothesourceaddressanddestinationaddressoftheIP.thereisafirewallbetweentwonetworksections,anUNIXcomputerisononesideofthefirewall,andtheothersideisaPCclient.WhilethePCclientasksatelnetrequestfortheUNIXcomputer,theclientprocedureoftelnetinthePCproducesaTCPpacketandpassesthepackettothelocalprotocolstacktopreparetosend.TheprotocolstackfillsitinoneIPpacket.then,sendsittoUNIXcomputerthroughthepathdefinedbytheTCP/IPstackofPC.TheIPpacketcan'treachtheUNIXcomputeruntilitpassesthefirewallbetweenthePCandtheUNIXcomputer.Asthekeyfacilitythatmaintainsthenetworksecurity.firewallstakethepurposeofestablishinganobstaclebetweentrustandtrustlessnetwork,andputcorrespondingsafetystrategyintopractice.TheapplicationfirewallisaveryefficientmeansofnetworksecurityonInternet,itisinstalledbetweenthetrustandtrustlessnetwork,canisolatetheconnectionbetweenthetrustandtruslessnetwork,anddoesn’thamperpeople’saccesstotheriskareaatthesametime.Firewallcanmonitorthetrafficflowinginandoutfromthenetworktofinishthetaskseeminglyimpossible;itonlyallowsthesafeandcheckedinformationtoenterinto,andmeanwhileresistsonthedatathatmaybringaboutthethreattoenterprise.Asthefaultanddefectofthesecurityproblembecomemoreandmoregeneral,theinvasiontothenetworknotonlycomesfromthesuperattackmeans,butalsomaybefromthelower-levelmistakesorimproperpasswordselectionsontheconfiguration.So,thefunctionofthefirewallsispreventingthecommunicationthatnothopedandauthorizedpassesinandoutofthenetworkprotected.forcingthecompaniestostrengthentheirownnetworksecuritypolicy.Thegeneralfirewallscanachievethefollowingpuroposes:First,restrainingothersfromenteringtheinsidenetwork,filteringtheunsafeserviceandillegaluser;Second,preventingtheinvadersfromclosingtoyourdefenseinstallation;Third,limtingtheusertoaccessthespecialsite;Fourth,providingconvenienceformonitoringtheInternetsecurity.Anintegratedfirewallssystemusuallyconsistsofscreeningrouterandproxyserver.Thescreeingrouterisamulty-portIProuter.itchecktheeachcomingIPpacketaccordingtothegroupregulartojudgewhethertotransmitit.Thescreeningroutergetsinformationfromthepacket.fotexampletheprotocolnumber.theIPaddressandportnumberthatreceivingandsendingmassages.theflagoflinkevensomeotherIPselections.filteringIPpacket.Theproxyserverareserverprocessinthefirewall.itcanreplacethenetworkusertofinishthespecificTCP/IPfunction.Aproxyserverisnaturallyagatewayofapplicationlayer.agatewayoftwonetworksjoinedspecificnetworkapplication.UserscontactwithproxyserverbyoneoftheTCP/IPapplicationsuchasTelnetorFTP.theproxyserverasktheusersforthenameoftheremotehost.whichuserswanttoaccess.Aftertheusershaveansweredandofferedthecorrectusers'identitiesandauthenticationinformation,theproxyservercommunicatestheremotehost,actastherelaybetweentwocommunicationsites.Thewholecoursecanbetotallytransparenttousers.Therearemainlythreetypesinthefirewalls:packetfiltering.applicationgatewaysandstatedetection.Packetfilteringfirewallworksonthenetworklayer.itcanfilterthesourceaddress.destinationaddress.sourceportanddestinationportofTCP/IPdatapacket.Ithasadvantagessuchasthehigherefficiency.transparenttouser.andusersmightnotfeeltheexistenceofthepackerfilteringfirewall,unlessheistheillegaluserandhasbeenrefused.Theshortcomingsarethatitcan'tensurethesecuritytomostservicesandprotocols,unabletodistinguishthedifferentusersofthesameIPaddresseffectively,anditisdifficulttobeconfigured,monitoredandmanaged.can'tofferenoughdailyrecordsandwarning.Theapplicationgatewaysfirewallperformsitsfunctionontheapplicationlayer,itconnectswithspecificmiddle-joint(firewall)byaclientprocedure,andthenthemiddle-jointconnectswiththeserveractually.Unlikethepacketfilteringfirewall.whenusingthefirewallofthiskind.thereisnodirectconnectionbetweentheoutsidenetworks.soevenifthematterhashappenedinthefirewall.theoutsidenetworkscan'tconnectwithnetworksprotected.Theapplicationgatewayfirewalloffersthedetaileddailyrecordsandauditingfunction,itimprovedthesecurityofthenetworkgreatly.andprovidesthepossibilitytoimprovethesecurityperformanceoftheexistingsoftwaretoo.Theapplicationgatewaysfirewallsolvesthesafetyproblembasedonthespecificapplicationprogram.theproductsbasedonProxywillbeimprovedtoconfiguretheserviceincommonuseandnon-standardport.However.solongastheapplicationprogramneedsupgrading.theusersbasedonProxywillfindthattheymustbuynewProxyserver.Asatechniqueofnetworksafety.Firewallcombinedwithproxyserverhassimpleandpracticalcharacteristics,canreachacertainsecurityrequestincaseofnotrevisingtheoriginalnetworkapplicationsystem.However.ifthefirewallsystemisbrokenthrough.thenetworkprotectedisinhavingnostateofprotecting.AndifanenterprisehopestolaunchthebusinessactivityonInternetandcarryoncommunicationwithnumerouscustomers.itcan'tmeetthedemands.Inaddition,thefirewallbasedonProxyServicewilloftenmakestheperformanceofthenetworkobviouslydrop.Thethirdgenerationoffirewalltakesthedetectiontechniqueofstateasthecore,combinesthepacketfilteringfirewallandapplicationgatewaysfirewall.Thestatedetectionfirewallaccessesandanalyzesthedataachievedfromthecommunicationlayerthroughthemoduleofstatedetectiontoperformitsfunction.Thestatemonitoractasfirewalltechnique.itisbestinsecurityperfonnance,itadoptsasoftwareengine.whichexecutesthetacticsofnetworksecurityonthegateways,calledthedetectionmodule.Onthepremiseofnotinfluencingthenetworktoworknormally,detectionmodulecollectstherelevantdatatomonitoreachofthenetworkcommunicationlayers,collectsapartofdata,namelystatusinformation,andstoresthedataupdynamicallyforthereferenceinmakingsecuritydecisionafterward.Detectionmodulesupportsmanykindsofprotocolsandapplicationprogram,andcanimplementtheexpansionofapplicationandserviceveryeasily.Differentfromothersafetyschemes,beforetheuser'saccessreachestheoperatingsystemofnetworkgateways,thestatemonitorshouldcollecttherelevantdatatoanalyze,combinenetworkconfigurationandsafetyregulationtomakethedecisionsofacceptance,refutation,appraisalorencryptingtothecommunicationetcOnceacertainaccessviolatesthesecurityregulation,thesafetyalarmwillrefuseitandwritedowntoreportthestateofthenetworktothesystemmanagementdevice.Thistechnologyhasdefectstoo,namelytheconfigurationofthestatemonitorisverycomplicated,andwilldeceleratethenetwork.Accordingtothepresentfirewallsmarket,thedomesticandinternationalmanufacturersoffirewallcanallsupportthebasicfunctionofthefirewallwell,includingaccesscontrol,thenetworkaddresstransform,proxy,authentication,dailyrecordsauditetc.However,asstatedbefore,withtheattacktothenetworkincreasing,anduser'srequisitionfornetworksecurityimprovingdaybyday,thefirewallmustgetfurtherdevelopment.Combinethepresentexperienceofresearchanddevelopmentandtheachievement,somerelevantstudiespointout,accordingtothedevelopmenttrendofapplicationandtechnology,howtostrengthenthesecurityoffirewall,improvetheperformanceoffirewall,enrichthefunctionoffirewall,willbecometheproblemthatthemanufactureroffirewallsmustfaceandsolvenext.Thepurposeofthenewgenerationfirewallismainlycombiningthepacketfilteringandproxytechnology,overcomingthedefectsinthesafetyrespectoftwo;beingabletoexerttheomnidirectionalcontrolfromthelayerofdatachaintotheapplicationlayer;implementingthemicro-kernelofTCP/IPprotocoltoperformallthesecuritycontrolonthelayerofTCP/IPprotocol;basedonthemicro-kernelabove,makingthespeedtoexceedthetraditionalpacketfilteringfirewall;Offeringthetransparentmodeofp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮线上活动策划方案
- 沈阳理工大学《工程制图A》2022-2023学年第一学期期末试卷
- 沈阳理工大学《大学生健康教育》2022-2023学年第一学期期末试卷
- 沈阳理工大学《材料工程测试技术》2022-2023学年第一学期期末试卷
- 果汁全国总代理合同模板
- 2024年九年级语文下册第五单元17屈原节选同步练习含解析新人教版
- 2024委托调查合同模板
- 韩非子-文白对照
- 2024房房租赁合同范本简单
- 2024合同、合同编号及下单管理规定
- 2024-2030年中国油套管行业产销现状分析及投资可行性研究报告
- 四川公安基础知识模拟1
- 2024年中级司泵工职业鉴定考试题库(精练500题)
- 患者沟通技巧
- 18 牛和鹅 第一课时 课件
- 2024年宜宾人才限公司招聘高频难、易错点500题模拟试题附带答案详解
- 小学生防性侵安全教育主题班会课件
- DBT29-305-2024 天津市装配式建筑评价标准
- 冀教版七年级数学上册 2.6 角大小的比较(第二章 几何图形的初步认识 学习、上课课件)
- 创建“环保银行”(教学设计)-2024-2025学年四年级上册综合实践活动教科版
- 劳动教育学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论