校园网络防火墙系统的设计与实现.docx

上传人:b****5 文档编号:7028424 上传时间:2023-01-16 格式:DOCX 页数:43 大小:211.81KB
下载 相关 举报
校园网络防火墙系统的设计与实现.docx_第1页
第1页 / 共43页
校园网络防火墙系统的设计与实现.docx_第2页
第2页 / 共43页
校园网络防火墙系统的设计与实现.docx_第3页
第3页 / 共43页
校园网络防火墙系统的设计与实现.docx_第4页
第4页 / 共43页
校园网络防火墙系统的设计与实现.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

校园网络防火墙系统的设计与实现.docx

《校园网络防火墙系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《校园网络防火墙系统的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。

校园网络防火墙系统的设计与实现.docx

校园网络防火墙系统的设计与实现

 

题目校园网络防火墙系统的设计与实现_____

学生姓名肖旭坤学号*********0________

所在学院物理与电信工程学院___________________

专业班级电子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;

 

Designandimplementationofcampusnetworkfirewallsystem

XiaoXukun

(Grade12,Class02,Majorelectronicsandinformationengineering,SchoolofPhysicsandTelecommunicationEngineering,ShaanxiUniversityofTechnology,HanZhong723000,Shaanxi)

Tutor:

LiJuye

Abstract:

WiththepopularityofInternetandthegrowingnetworkusers.Networksecurityproblemiscoming,Increasinglyimportant,peoplearepayingmoreattentiononthesecurityofNetwork.TherearevariousFirewallonInternet.ThisdesignmainlyanalyzetheloopholesofTCP/IPprotocolandisbasedontheenvironmentofVisualC++6.0.ThroughIPrecognizingandmarkingrulesaccomplishingpacketfiltering,soasakindofFirewall.Asthekeyfacilitythatmaintainsthenetworksecurity,firewallstakethepurposeofstablinganobstaclebetweentrustandtrustlessnetwork,andputcorrespongdingsafetystrategyintopractice.

Keywords:

Firewall;IP;VisualC++6.0;Filter-HookDriver;

 

1引言

防火墙是在一个整体系统,他主要是设置在网络之间的安全区域内或是不同网络之间,它的作用是操控网络与网络之间的访问,可以根据设置的访问规则控制网络信息的传输。

它的本体也有相当程度的抗入侵能力[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。

1.3.1VisualC++

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年的2.0.8版,经过不断完善并在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]。

状态检测包过滤:

利用特制的状态监测表跟踪每一对网络会话的状态,对每一个数据包的检查不仅根据规则表,又考虑到数据包是否满足通信所处的状态。

因此提供了对传输层更完整的控制能力。

同时又因为一系列技术优化性能的采用,状态检测包过滤的性能也显然要比简单包过滤产品更优,尤其是在一些复杂规则的大型网络上。

优势:

包过滤路

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1