个人防火墙的设计与实现.doc
《个人防火墙的设计与实现.doc》由会员分享,可在线阅读,更多相关《个人防火墙的设计与实现.doc(31页珍藏版)》请在沃文网上搜索。
1、摘 要 现在人们的生活中,网络已经越来越成为必不可少的一部分。随之,网络安全也备受关注。防火墙成为个人PC与外网间的一道屏障,把攻击者挡在受保护网的外面,在很大程度上起到了维护网络安全的作用。这种技术强制所有内外网的连接都必须经过此保护层,在此进行检查和连接,从而保护了受保护网资源免遭外部非法入侵。Linux系统由于本身的稳定性,更多的被应用于对网络安全要求高的领域。针对具体需求,在Linux中编写个人防火墙的C语言程序,运行makefile文件,编译程序。最后放入内核全编译。运行防火墙后可通过输入具体的iptables命令进行规则配置,实现网络地址转换和包过滤的功能。这篇论文对防火墙的原理,
2、所用技术和如何进行防火墙配置做了详细介绍,列举实例解释如何通过iptables命令配置防火墙规则。关键词 包过滤 防火墙 Linux 网络安全 iptablesThe Personal Firewall Abstract In peoples lives, the network has increasingly become an indispensable part. Following this, the network security is also of concern. Firewall personal PC and outside the gateway of a barri
3、er to block the attacker outside the protected network, in large part to play the role of maintaining network security. This technique to force all internal and external network connections must go through this protective layer, this inspection and connection to protect the illegal invasion of a pro
4、tected network resources from external. Linux systems because of their stability, have been applied to high field of network security requirements. C language program to write a personal firewall for specific needs, in Linux, run the makefile, and compile the program. And finally into a full compile
5、 of the kernel. By entering a specific iptables command after running a firewall rule configuration, network address translation and packet filtering functions. This paper the principle of the firewall, use technology and how to conduct firewall configuration to a detailed description, cited the exa
6、mple explained how to configure the firewall rules through the iptables command.Key words firewall packet filter Linux network security iptablesII目 录摘要IABSTRACTII1 引言11.1 课题研究的背景及意义11.2课程设计的目的11.3Linux防火墙的简单介绍12 LINUX防火墙技术12.1 网络地址转换(NAT)技术12.2 包过滤技术22.2.1 数据表结构22.2.2 传统包过滤技术32.2.1 动态包过滤33 LINUX防火墙功
7、能介绍33.1包过滤功能43.2 代理服务功能43.3 包伪装44 个人防火墙的设计与实现44.1 防火墙的实现原理54.2 代码分析54.3 防火墙的建立过程84.4包过滤的实现过程104.5 防火墙的应用举例105 结论11参考文献:12致 谢13附 录142个人防火墙的设计与实现1 引言1.1 课题研究的背景及意义随着互联网的迅速普及,各种计算机应用更加广泛和深入,从而使人们对计算机网络的依赖性逐步加强。与此同时,我们也发现,网络虽然强大,也有其脆弱的一面,它随时都有被利用,被攻击的危险。网络通信大多数采用协议完成,协议在设计上要力求运行的效率,因而造成了网络不安全的现象。人们总是在网络
8、安全问题发生带来严重后果后,才意识到网络安全的重要。随着网络的进一步普及,网络安全产品逐渐地进入人们的视野,而防火墙作为把守用户安全大门的重要工具,越来越受到人们的重视。全球信息安全方面的研究工作者就此问题展开了广泛而深入的研究,其中防火墙技术是近年发展起来的一种网络安全技术。顾名思义,它是在受保护网与外部网之间构造一个保护层,把攻击者挡在受保护网的外面。这种技术强制所有内外网的连接都必须经过此保护层,在此进行检查和连接,从而保护了受保护网资源免遭外部非法入侵。它通过监测、限制或更改跨越防火墙的数据流,尽可能地对外部网络屏蔽有关受保护网络的信息和结构来实现对网络的安全保护。本文将首先从Linu
9、x下防火墙要用到的技术入手,掌握包过滤的实现原理,然后详述防火墙的配置方法,最后重点介绍我们提出的基于Linux平台的个人防火墙的设计和实现。1.2 课程设计的目的本课程设计设主要目的是在Linux操作系统下完成基于Netfilter/Iptables的包过滤防火墙的设计与实现。Internet等网络服务给人们的生活带来极大便利的同时也存在很多隐患,学会基于Netfilter/Iptables的包过滤防火墙的配置就能在一定程度上有效地抵御来自网络上的攻击。通过完成课程设计,学习包过滤防火墙的相关知识,同时也深化对Linux课程的理解。1.3 Linux防火墙的简单介绍目前的防火墙无论从技术上还
10、是产品发展历程上,都经历了五个发展阶段。第一代防火墙技术几乎与路由器同时出现,采用了包过滤技术。1989年,贝尔实验室的Dave Presotto和Howard Trickey推出了第二代防火墙,即电路层防火墙,同时提出了第三代防火墙,即应用层防火墙的初步结构。第四代防火墙是1992年,USC信息科学院的BobBraden开发出了基于动态包过滤技术的第四代防火墙,后来演变为目前所说的状态监视技术。1994年,以色列的CheckPoint公司开发出了第一个采用这种技术的商业化的产品。第五代防火墙是1998年,NAI公司推出了一种自适应代理技术,并在其产品Gauntlet Firewall for
11、 NT中得以实现,给代理类型的防火墙赋予了全新的意义。高级应用代理的研究,克服速度和安全性之间的矛盾,可以称之为第五代防火墙。前五代防火墙技术有一个共同的特点,就是采用逐一匹配方法,计算量太大。包过滤是对IP包进行匹配检查,状态检测包过滤除了对包进行匹配检查外还要对状态信息进行匹配检查,应用代理对应用协议和应用数据进行匹配检查。因此,它们都有一个共同的缺陷,安全性越高,检查的越多,效率越低。用一个定律来描述,就是防火墙的安全性与效率成反比。2 Linux防火墙技术2.1 网络地址转换(NAT)技术NAT英文全称是Network Address Translation,称是网络地址转换,允许一个
12、机构以一个地址出现在Internet上。NAT将每个局域网节点的地址转换成一个IP地址,反之亦然。它常被应用到防火墙技术里,把个别IP地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP地址的使用。NAT技术能帮助解决令人头痛的IP地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址在Internet上使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。 NAT功能通常被集成到路由器、防火墙
13、、ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级,这意味着给处理器带来了一定的负担。但对于一般的网络来说,这种负担是微不足道的。2.2 包过滤技术所谓包过滤,就是对流经网络防火墙的所有数据包逐个检查,并依据所制定的安全策略来决定数据包是通过还是不通过。包过滤最主要的优点在于其速度与透明性。也正是由于此,包过滤技术历经发展演变而未被淘汰。由于其主要是对数据包的过滤操作,所以数据包结构是包过滤技术的基础。考虑包过滤技术的发展过程,可以认为包过滤的核心问题就是如何充分利用数据包中各
14、个字段的信息,并结合安全策略来完成防火墙的功能。包过滤具体操作流程如图2-1是否是最后一个包规则存储包过滤规则分析IP、TCP、UDP数据包包头字段应用下一个包规则包规则是否允许传输包规则是否阻止传输允许包阻止包是是是否否否图2-1 包过滤操作流程图2.2.1 数据表结构当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对接收到的数据都要增加一些首部信息。TCP传给IP的数据单元称作TCP报文段,IP传给网络接口层的数据单元称作IP数据报,通过以太网传输的比特流称作帧(Frame)。对于进入防火墙的数据包,顺序正好与此相反,头部信息逐层
15、剥掉。对于帧的头部信息主要是源主机和目的主机的MAC地址;IP数据报头部信息主要是源主机和目的主机的IP地址;TCP头部的主要字段包括源主机和目的端口、发送及确认序号、状态标识等。理论上讲,数据包所有头部信息以及有效载荷都可以作为判断包通过与否的依据,但是在实际情况中,包过滤技术上的问题主要是选取哪些字段信息,以及如何有效地利用这些字段信息并结合访问控制列表来执行包过滤操作,并尽可能提高安全控制力度。2.2.2 传统包过滤技术传统包过滤技术,大多是在IP层实现,它只是简单的对当前正在通过的单一数据包进行检测,查看源IP地址和目的IP地址、端口号以及协议类型(UDP/TCP)等,结合访问控制规则
16、对数据包实施有选择的通过。这种技术实现简单,处理速度快,对应用透明,但是它存在的问题也很多,主要表现有: (1)所有可能会用到的端口都必须静态放开。若允许建立HTTP连接,就需要开放1024以上所有端口,这无疑增加了被攻击的可能性。(2)不能对数据传输状态进行判断。如接收到一个ACK数据包,就认为这是一个己建立的连接,这就导致许多安全隐患,一些恶意扫描和拒绝服务攻击就是利用了这个缺陷。(3)无法过滤审核数据包上层的内容。即使通过防火墙的数据包有攻击性或包含病毒代码,也无法进行控制和阻断。综合上述问题,传统包过滤技术的缺陷在于:(l)缺乏状态检测能力;(2)缺乏应用防御能力;(3)只对当前正在通
17、过的单一数据包进行检测,而没有考虑前后数据包之间的联系;(4)只检查包头信息,而没有深入检测数据包的有效载荷。传统包过滤技术必须发展进化,在继承其优点的前提下,采用新的技术手段,克服其缺陷,并进一步满足新的安全应用要求。从数据包结构出发考虑,目前包过滤技术向两个方向发展:(l)横向联系。即在包检测中考虑前后数据包之间的关系,充分利用包头信息中能体现此关系的字段,如IP首部的标识字段和片偏移字段、TCP首部的发送及确认序号、滑动窗口的大小、状态标识等,动态执行数据包过滤。(2)纵向发展。深入检测数据包有效载荷,识别并阻止病毒代码和基于高层协议的攻击,以此来提高应用防御能力。这两种技术的发展并不是
18、独立的,动态包过滤可以说是基于内容检测技术的基础。实际上,在深度包检测技术中己经体现了两种技术的融合趋势。2.2.1 动态包过滤动态包过滤又称为基于状态的数据包过滤,是在传统包过滤技术基础之上发展起来的一项过滤技术,最早由Checkpoint提出。与传统包过滤技术只检查单个、孤立的数据包不同,动态包过滤试图将数据包的上下文联系起来,建立一种基于状态的包过滤机制。对于新建的应用连接,防火墙检查预先设置的安全规则,允许符合规则的连接通过,并在内存中记录下该连接的相关信息,这些相关信息构成一个状态表。这样,当一个新的数据包到达,如果属于已经建立的连接,则检查状态表,参考数据流上下文决定当前数据包通过
19、与否,如果是新建连接,则检查静态规则表。动态包过滤通过在内存中动态地建立和维护一个状态表,数据包到达时,对该数据包的处理方式将综合静态安全规则和数据包所处的状态进行。这种方法的好处在于由于不需要对每个数据包进行规则检查,而是一个连接的后续数据包(通常是大量的数据包)通过散列算法,直接进行状态检查,从而使性能得到了较大提高;而且,由于状态表是动态的,因而可以有选择地、动态地开通1024号以上的端口,使安全性得到进一步地提高。动态包过滤技术克服了传统包过滤仅仅孤立的检查单个数据包和安全规则静态不可变的缺陷,使得防火墙的安全控制力度更为细致。3 Linux防火墙功能介绍3.1 包过滤功能根据数据包的
20、包头中某些标志性的字段,对数据包进行过滤。当数据包到达防火墙时,防火墙根据包头中的某些字段中的一些或全部进行判断,决定接受还是丢弃数据包。包过滤可能发生在以下几个时刻:接收到数据包时,发送数据包时以及转发数据包时。Linux中过滤包的方法如下: (1)将包头和过滤规则逐一进行匹配。 (2)第一条与包匹配的规则将决定以下采取的行动:首先,此规则指定的策略将被应用到该包上。应用在一个包的策略包括以下几种:接受(ACCEPT),即允许包通过该过滤器;拒绝 (REJECTt),即丢掉该包并发一个“主机不可到达”的 ICMP报文回发送者;丢弃(DROP),即丢掉该包且不发任何返回信息。其次,修改此规则对
21、应的包和字节计数器的值;再次,一些关于包的信息有选择性地被写入日志中。有的规则中可能含有参数来定义如何改写包头的服务类型(TOS)字段,用于确定不同包的优先级。(3)如果没有与包相匹配的过滤规则,则将对该包采取缺省的过滤规则。Linux 的包过滤规则可包含如下一些信息: 源地址和目的地址以及子网掩码,其中子网掩码中的 0 表示可以匹配任何地址; 包的类型可以是 TCP,UDP,ICMP 或“any”; 源和目的端口号,一条规则中可以指定 10 个以上的端口,也允许指定端口范围; ICMP报文类型; 包中的 ACK和 SYN标志,这是为了防止在某个特定方向上建立新的链接; 某块网卡的名字或 IP
22、地址,这样可以指定在特定的网卡上进出包; 指定是否修改包头的TOS字段; 用一个标志来确定包的一些基本信息是否要被写入日志中3.2 代理服务功能一个完整的防火墙解决方案不仅包括包过滤器,而且应该包括某种类型的应用层代理服务器。所谓代理服务,是指在防火墙上运行某种软件(称为代理程序),如果内部网需要与外部网通信,首先要建立与防火墙上代理程序的连接,把请求发送到代理程序;代理程序接收该请求,建立与外部网相应主机的连接,然后把内部网的请求通过新连接发送到外部网相应主机。反之亦然。概括的说,就是内部网和外部网的主机之间不能建立直接的连接,而是要通过代理服务进行转发。代理服务器具有用户级的身份验证,完备
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人防火墙 设计 实现
