防火墙包过滤规则的优化和分析_第1页
防火墙包过滤规则的优化和分析_第2页
防火墙包过滤规则的优化和分析_第3页
防火墙包过滤规则的优化和分析_第4页
防火墙包过滤规则的优化和分析_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录TOC o 1-3 h u HYPERLINK l _Toc156460788 第一章 引言 PAGEREF _Toc156460788 h 4 HYPERLINK l _Toc156460789 课题的国内外概况 PAGEREF _Toc156460789 h 4 HYPERLINK l _Toc156460790 本论文题目的理论意义和实用价值 PAGEREF _Toc156460790 h 5 HYPERLINK l _Toc156460791 第二章 包过滤防火墙技术 PAGEREF _Toc156460791 h 7 HYPERLINK l _Toc156460792 包过滤防

2、火墙技术简介 PAGEREF _Toc156460792 h 7 HYPERLINK l _Toc156460793 防火墙包过滤技术的特点 PAGEREF _Toc156460793 h 8 HYPERLINK l _Toc156460794 包过滤防火墙工作原理 PAGEREF _Toc156460794 h 9 HYPERLINK l _Toc156460795 数据包过滤技术 PAGEREF _Toc156460795 h 12 HYPERLINK l _Toc156460796 数据包过滤类型 PAGEREF _Toc156460796 h 16 HYPERLINK l _Toc15

3、6460797 IP包过滤 PAGEREF _Toc156460797 h 16 HYPERLINK l _Toc156460798 .TCP包过滤 PAGEREF _Toc156460798 h 17 HYPERLINK l _Toc156460799 UDP数据包过滤 PAGEREF _Toc156460799 h 17 HYPERLINK l _Toc156460800 源端口过滤 PAGEREF _Toc156460800 h 17 HYPERLINK l _Toc156460801 第三章 具体实现 PAGEREF _Toc156460801 h 20 HYPERLINK l _To

4、c156460802 数据库表的建立 PAGEREF _Toc156460802 h 20 HYPERLINK l _Toc156460803 封包监视的设计 PAGEREF _Toc156460803 h 23 HYPERLINK l _Toc156460804 第四章 防火墙系统的设计与实现 PAGEREF _Toc156460804 h 28 HYPERLINK l _Toc156460805 总体框架模型设计 PAGEREF _Toc156460805 h 28 HYPERLINK l _Toc156460806 包过滤驱动程序设计 PAGEREF _Toc156460806 h 28

5、 HYPERLINK l _Toc156460807 上层应用程序的设计 PAGEREF _Toc156460807 h 29 HYPERLINK l _Toc156460808 .防火墙的优化 PAGEREF _Toc156460808 h 29 HYPERLINK l _Toc156460809 第五章 总结与展望 PAGEREF _Toc156460809 h 31 HYPERLINK l _Toc156460810 参考文献 PAGEREF _Toc156460810 h 32 HYPERLINK l _Toc156460811 致谢 PAGEREF _Toc156460811 h 3

6、3第一章 引言 课题的国内外概况包过滤防火墙是最简单的一种防火墙,它在网络层截获网络数据包,根据防火墙的规则表,来检测攻击行为。包过滤防火墙一般作用在网络层(IP层),故也称网络层防火墙(Network Lev Firewall)或IP过滤器(IP filters)。数据包过滤(Packet Filtering)是指在网络层对数据包进行分析、选择。通过检查数据流中每一个数据包的源IP地址、目的IP地址、源端口号、目的端口号、协议类型等因素或它们的组合来确定是否允许该数据包通过。在网络层提供较低级别的安全防护和控制。包过滤防火墙工作在网络层,对数据包的源及目地 IP 具有识别和控制作用,对于传输

7、层,也只能识别数据包是 TCP 还是 UDP 及所用的端口信息,如下图所示。现在的路由器、Switch Router 以及某些操作系统已经具有用 Packet Filter 控制的能力。由于只对数据包的 IP 地址、 TCP/UDP 协议和端口进行分析,包过滤防火墙的处理速度较快,并且易于配置。简单介绍近年来,Internet的快速增长促进了信息技术的飞速发展,它的迅猛成长正在使世界成为一个整体。但随之而来的是数据的完整性与安全性问题。人们一方面要把自己的内部网接入Internet,以便公司成员可以最大可能地利用Internet 上的资源,同时大家都需要把自己的数据有意识地保护起来,以防数泄密

8、及受到外界对内部系统的恶意破坏。而当前能采用的有效措施就是防火墙。防火墙大致可以分为两大类:包过滤防火墙和代理防火墙。其中包过滤技术由于可以与现有的路由器集成,也可以用独立的包过滤软件实现,使用较灵活,应用比较广泛。本文由此展开,主要介绍包过滤。开始文章介绍了一些网络的基本概念,数据包截取需要用到的非常重要的库函数winpcap的结构。在此基础上回顾了当前包过滤技术研究的进展和现状,着重介绍了包过滤的原理、以及优点和缺点。最后介绍了一个在单机上实现的简单的对指定端口实现数据包抓取的程序。随着网络技术的飞速发展,网络安全问题日益突出。防火墙是目前广泛使用的一种网络安全技术,已成为企业内部与公用网

9、络之间的一道必备的屏障,个人用户也纷纷安装了个人防火墙软件。防火墙往往放在网络的出口,成为一个信息流量的阻塞点,若造成网络阻塞,再安全的防火墙也无法应用。在实现中需要解决的主要问题是如何提高包过滤的性能。本文研究目标是实现一种基于Windows的包过滤型防火墙。其核心问题是如何基于NDIS中间驱动程序在Windows内核中截获数据包,并提高包过滤的性能。本论文题目的理论意义和实用价值 防火墙技术的发展离不开社会需求的变化,着眼未来,我们注意到以下几个新的需求。 远程办公的增长。这次全国主要城市先后受到 SARS 病毒的侵袭,直接促成大量的企事业在家办公,这就要求防火墙既能抵抗外部攻击,又能允许

10、合法的远程访问,做到更细粒度的访问控制。现在一些厂商推出的 VPN (虚拟专用网)技术就是很好的解决方式。只有以指定方式加密的数据包才能通过防火墙,这样可以确保信息的保密性,又能成为识别入侵行为的手段。 内部网络 “ 包厢化 ” ( compartmentalizing )。人们通常认为处在防火墙保护下的内网是可信的,只有 Internet 是不可信的。由于黑客攻击技术和工具在 Internet 上随手可及,使得内部网络的潜在威胁大大增加,这种威胁既可以是外网的人员,也可能是内网用户,不再存在一个可信网络环境。由于无线网络的快速应用以及传统拨号方式的继续存在,内网受到了前所未有的威胁。企业之前

11、的合作将合作伙伴纳入了企业网络里,全国各地的分支机构共享一个论坛,都使可信网络的概念变得模糊起来。应对的办法就是将内部网细分成一间间的 “ 包厢 ” ,对每个 “ 包厢 ” 实施独立的安全策略。Internet 的迅速发展,为人们提供了发布信息和检索信息的场所,但同时它也带来了信息污染和信息被破坏的危险,网络的安全性问题已成为一个重要研究课题。在Internet上存在两种安全性问题:Internet服务本身所固有的脆弱性;主机配置和访问控制难于实现或过于复杂而产生的安全漏洞。Internet 安全的脆弱性的表现形式主要有Internet蠕虫(Worm) ,身份验证机制的脆弱性,网上传输的信息易

12、窃取及易被欺骗等。其中蠕虫程序与计算机病毒有区别,它是一个独立、完整的程序,本身并不损坏任何文件或窃取信息,但它严重干扰了网络的正常操作,使受感染的计算机处于重负载状态,拒绝其他机器用户的服务请求。而通过破译口令的加密方式和截获传递口令报文的方法,就可以获得该帐户的权限,其身份验证机制的脆弱性由此表现出来。特别是一些TC 或UD 服务的身份验证仅仅依赖报文中的IP 地址,管理员不能对某个用户定义访问权限,必须以主机为单位来定义访问权限,该主机上所有用户的权限都一样,这样就容易产生安全问题. 当使用Telnet或FTP与远程主机相连并进行身份验证时,使用的用户口令以明文的形式在Internet上

13、传输,这样只需监视、截获连接中包含用户名和口令的IP 报文,就很容易获得某台主机的帐户。E-mail在网上也是以明文传输,通过监视网上交换的电子邮件可以获得有关某个站点的信息。第二章 包过滤防火墙技术 包过滤防火墙技术简介防火墙是专用网络系统,旨在防止未经授权的访问或从。防火墙是用于防止未经授权的Internet网络的互联网连接的用户访问私营,尤其是内部网,虽然使用防火墙保护互联网从单一的电脑也越来越大,随着越来越多的电脑用户成为世界知道,网络安全问题的。防火墙可以是即时通讯 在硬件和软件,或两者相结合的,一般可分为下列之一类别: 数据包过滤 , 应用网关 , 电路级网关和代理服务器 。虽然他

14、们都 不同层次的不同情况在实用性和缺点,本文只处理数据包过滤器,如他们更有可能得到有效的硬件实现研究。包过滤字段的标题是基于他们对网络资源的众所周知的方法限制访问滤波要求的能力,按照指定的数据包分类过滤规则。这些规则可以看作是头字段的逻辑功能的数据包。分类数据包也出现在计算其他领域,如路由,策略路由,区分交通服务质量,然而,并非所有的人都使用或需要分类的基础上多包头中的字段。例如,一个简单的包转发路由器只需要根据数据包进行分类在一个领域(目的地的IP地址)来执行正确的路线。过滤的概念和分类是紧密联系在一起,因此,这些条款将用于在本文件比较松散,除非区别要避免混淆。总的想法包过滤,或分类,是人开

15、始在后来扩大由他人创立和雅各布森,虽然包分类问题时,防火墙的主要焦点本文件的背景是计算机网络在许多领域。快速和有效的数据包分类在多个领域的头是一个具有挑战性的问题。主要有两种方法来实施该系统的过滤: 翻译为基础和模式为基础 。第一种方法由一个指令集的规范规则和一名翻译引擎解释处理能力的指示表,而后者匹配图案用一些比较机制,不需要翻译引擎。它也可以使用这些做法都一起实现方便和效率之间的平衡。防火墙是内部、外部两个网络之间的一个阻隔,通过允许和拒绝经过防火墙的数据流,防止不希望的、未授权的通信,并实现对进、出内部网络的服务和访问的审计和控制防火墙对网络用户提供访问控制服务和通信安全服务,对网络用户

16、基本上是“透明”的,并且只有授权的管理员方可对防火墙进行管理。防火墙一般要解决的安全问题可分为被保护系统(即内部网)的安全问题和自身的安全问题。防火墙产品主要分为两类:包过滤和应用级防火墙本标准规定了包过滤防火墙的各级安全要求。包过滤防火墙根据安全功能策略建立包过滤规则。过滤规则的主要要素有源IP地址、目的IP地址、协议号、源端口、目的端口、连接标志和另外一些IP选项,以及包到达或发出的接口。包过滤防火墙工作在网络层,对数据包的源及目地 IP 具有识别和控制作用,对于传输层,也只能识别数据包是 TCP 还是 UDP 及所用的端口信息,如下图所示。现在的路由器、 Switch Router 以及

17、某些操作系统已经具有用 Packet Filter 控制的能力。由于只对数据包的 IP 地址、 TCP/UDP 协议和端口进行分析,包过滤防火墙的处理速度较快,并且易于配置。包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。在Linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定包的命运。 防火墙包过滤技术的特点 包过滤防火墙工作在网络层,对数据包的

18、源及目地IP具有识别和控制作用,对于传输层,也只能识别数据包是TCP还是UDP及所用的端口信息,如下图所示。现在的路由器、Switch Router以及某些操作系统已经具有用Packet Filter控制的能力。由于只对数据包的IP地址、TCP/UDP协议和端口进行分析,包过滤防火墙的处理速度较快,并且易于配置。(1)优点:对于一个小型的、不太复杂的站点,包过滤比较容易实现。因为过滤路由器工作在IP层和TCP层,所以处理包的速度比代理服务器快。过滤路由器为用户提供了一种透明的服务,用户不需要改变客户端的任何应用程序,也不需要用户学习任何新的东西。因为过滤路由器工作在IP层和TCP层,而IP层和

19、TCP层与应用层的问题毫不相关。所以,过滤路由器有时也被称为“包过滤网关”或“透明网关”,之所被称为网关,是因为包过滤路由器和传统路由器不同,它涉及到了传输层。过滤路由器在价格上一般比代理服务器便宜。(2)缺点:一些包过滤网关不支持有效的用户认证。规则表很快会变得很大而且复杂,规则很难测试。随着表的增大和复杂性的增加,规则结构出现漏洞的可能性也会增加。这种防火墙最大的缺陷是它依赖一个单一的部件来保护系统。如果这个部件出现了问题,会使得网络大门敞开,而用户其至可能还不知道。在一般情况下,如果外部用户被允许访问内部主机,则它就可以访问内部网上的任何主机。包过滤防火墙只能阻止一种类型的IP欺骗,即外

20、部主机伪装内部主机的IP,对于外部主机伪装外部主机的IP欺骗却不可能阻止,而且它不能防止DNS欺骗。虽然,包过滤防火墙有如上所述的缺点,但是在管理良好的小规模网络上,它能够正常的发挥其作用。一般情况下,人们不单独使用包过滤网关,而是将它和其他设备(如堡垒主机等)联合使用。综上可见,包过滤防火墙技术面太过初级,就好比一位保安只能根据访客来自哪个省市来判断是否允许他(她)进入一样,难以履行保护内网安全的职责。 包过滤防火墙工作原理包过滤防火墙工作在OSI网络参考模型的网络层和传输层,它根据数据包头源地址,目的地址、端口号和协议类型等标志确定是否允许通过。只有满足过滤条件的数据包才被转发到相应的目的

21、地,其余数据包则被从数据流中丢弃。 包过滤方式是一种通用、廉价和有效的安全手段。之所以通用,是因为它不是针对各个具体的网络服务采取特殊的处理方式,适用于所有网络服务;之所以廉价,是因为大多数路由器都提供数据包过滤功能,所以这类防火墙多数是由路由器集成的;之所以有效,是因为它能很大程度上满足了绝大多数企业安全要求。在整个防火墙技术的发展过程中,包过滤技术出现了两种不同版本,称为“第一代静态包过滤”和“第二代动态包过滤”。第一代:静态包过滤 这种类型的防火墙根据定义好的过滤规则审查每个数据包,以便确定其是否与某一条包过滤规则匹配。过滤规则基于数据包的报头信息进行制订。报头信息中包括IP源地址、IP

22、目标地址、传输协议(TCP、UDP、ICMP等等)、TCP/UDP目标端口、ICMP消息类型等。包过滤类型的防火墙要遵循的一条基本原则是“最小特权原则”,即明确允许那些管理员希望通过的数据包,禁止其他的数据包。图2.3.1 简单包过滤防火墙第二代:动态包过滤 这种类型的防火墙采用动态设置包过滤规则的方法,避免了静态包过滤所具有的问题。这种技术后来发展成为所谓包状态监测(Stateful Inspection)技术。采用这种技术的防火墙对通过其建立的每一个连接都进行跟踪,并且根据需要可动态地在过滤规则中增加或更新条目。图2.3.2 动态包过滤防火墙包过滤方式的优点是不用改动客户机和主机上的应用程

23、序,因为它工作在网络层和传输层,与应用层无关。但其弱点也是明显的:过滤判别的依据只是网络层和传输层的有限信息,因而各种安全要求不可能充分满足;在许多过滤器中,过滤规则的数目是有限制的,且随着规则数目的增加,性能会受到很大地影响;由于缺少上下文关联信息,不能有效地过滤如UDP、RPC一类的协议;另外,大多数过滤器中缺少审计和报警机制,它只能依据包头信息,而不能对用户身份进行验证,很容易受到“地址欺骗型”攻击。对安全管理人员素质要求高,建立安全规则时,必须对协议本身及其在不同应用程序中的作用有较深入的理解。因此,过滤器通常是和应用网关配合使用,共同组成防火墙系统。包过滤是一种内置于Linux内核路

24、由功能之上的防火墙类型,其防火墙工作在网络层。 (1)使用过滤器。数据包过滤用在内部主机和外部主机之间,过滤系统是一台路由器或是一台主机。过滤系统根据过滤规则来决定是否让数据包通过。用于过滤数据包的路由器被称为过滤路由器。数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,主要信息有:IP源地址IP目标地址协议(TCP包、UDP包和ICMP包)TCP或UDP包的源端口TCP或UDP包的目标端口ICMP消息类型TCP包头中的ACK位数据包到达的端口数据包出去的端口在TCP/IP中,存在着一些标准的服务端口号,例如,HTTP的端口号为80。通过屏蔽特定的端口可以禁止特定的服务。包过

25、滤系统可以阻塞内部主机和外部主机或另外一个网络之间的连接,例如,可以阻塞一些被视为是有敌意的或不可信的主机或网络连接到内部网络中。(2)过滤器的实现。数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同。普通的路由器只检查数据包的目标地址,并选择一个达到目的地址的最佳路径。它处理数据包是以目标地址为基础的,存在着两种可能性:若路由器可以找到一个路径到达目标地址则发送出去;若路由器不知道如何发送数据包则通知数据包的发送者“数据包不可达”。过滤路由器会更加仔细地检查数据包,除了决定是否有到达目标地址的路径外,还要决定是否应该发送数据包。“应该与否”是由路由器的过滤策略决定并强行执行

26、的。路由器的过滤策略主要有:拒绝来自某主机或某网段的所有连接。允许来自某主机或某网段的所有连接。拒绝来自某主机或某网段的指定端口的连接。允许来自某主机或某网段的指定端口的连接。拒绝本地主机或本地网络与其它主机或其它网络的所有连接。允许本地主机或本地网络与其它主机或其它网络的所有连接。拒绝本地主机或本地网络与其它主机或其它网络的指定端口的连接。允许本地主机或本地网络与其它主机或其它网络的指定端口的连接。 数据包过滤技术这种技术是在网络中适当的位置对数据包实施有选择的通过,选择依据,即为系统内设置的过滤规则(通常称为访问控制表Access Control List),只有满足过滤规则的数据包才被转

27、发至相应的网络接口,其余数据包则被从数据流中删除。包过滤在本地端接收数据包时,一般不保留上下文,只根据目前数据包的内容做决定。根据不同的防火墙的类型,包过滤可能在进入、输出时或这两个时刻都进行。可以拟定一个要接受的设备和服务的清单,一个不接受的设备和服务的清单,组成访问控制表。在主机或网络级容易用包过滤接受或决绝访问,例如,可以允许主机A和主机B之间的任何IP访问,或者拒绝除A外的任何设备对B的访问。包过滤的设置: 必须知道什么是应该和不应该被允许的,即必须制定一个安全策略。 必须正式规定允许的包类型、包字段的逻辑表达。 必须用防火墙支持的语法重写表达式。下面是我就一个简单的按地址数据包过滤方

28、式,它按照源地址进行过滤。比如说,认为网络是一个危险的网络,那么就可以用源地址过滤禁止内部主机和该网络进行通信。在网络中数据是以数据包的形式传输的。这样,当数据包经过防火墙时,防火墙可以检查数据包中的那些信息,然后根据规则决定是否允许该包通过,就源地址过滤而言,防火墙只要检查目标地址和源地址就可以了。表表示的是根据上面的政策所制定的规则。表表示的是根据上面的政策所制定的规则。表 过滤规则示例规则方向源地址目标地址动作A出内部网络拒绝B入内部网络拒绝这种方式没有利用全部信息,对于当今网络攻击的发展以无法满足防火墙的需求,下面是一种更为先进的过滤方式按服务过滤。假设安全策略是禁止外部主机访问内部的

29、E-mail服务器(SMTP,端口25),允许内部主机访问外部主机,实现这种的过滤的访问控制规则类似表。规则按从前到后的顺序匹配,字段中“*”代表任意值,没有被过滤器规则明确允许的包将被拒绝。就是说,每一条规则集都跟随一条含蓄的规则,就像表中的规则C。这与一般原则是一致的:没有明确允许就被禁止。任何一种协议都是建立在双方的基础上的,信息流也是双向的,所以在考虑允许内部用户访问Internet时,必须允许数据包不但可以出站而且可以入站。同理,若禁止一种服务,也必须从出站和入站两方面制定规则,规则总是成对出现的。表 规则表规则方向动作源地址源端口目的地址目的端口注释A进拒绝m*E-mail25不信

30、任B出允许*允许联接C双向拒绝*缺省状态下面,通过一个包过滤实例来讲解分析。第一,假设处于一个C类网,认为站点上有不健康的BBS,所以希望阻止网络中的用户访问该点的BBS;再假设这个站点的BBS服务是通过Telnet方式提供的,那么需要阻止到那个站点的的出站Telnet服务,对于Internet的其他站点,允许内部网用户通过Telnet方式访问,但不允许其他站点以Telnet方式访问网络。第二,为了收发电子邮件,允许SMTP出站入站服务,邮件服务器是IP地址为。第三,对于WWW服务,允许内部网用户访问Internet上任何网络和站点,但只允许一个公司的网络访问内部WWW服务器,内部WWW服务器

31、的IP地址为,因为你们是合作伙伴关系,那个公司的网络为。 根据上面的安全策略可以得到表。 表 过滤规则示例规则方向源地址目标地址协议源端口目标端口ACK设置动作A出任意拒绝B入是任意C出任意TCP102323任意允许D入任意是允许E出任意TCP102325任意允许F入任意是允许G入任意任意允许H出任意TCP251023任意允许I出任意TCP102380任意允许J入任意是允许K入任意允许L出任意允许M双向任意任意任意 任意任意规则A、B用来阻止你的内部主机以Telnet服务形式联接到站,规则C、D允许你的内部主机以Telnet方式访问Internet上的任何主机。这似乎和我们的政策发生了矛盾,但

32、事实上并部矛盾。在前面提到过规则的次序是十分重要的,而且防火墙实施规则的特点是当防火墙找到匹配的规则后就不再向下应用其他的规则,所以当内部网主机访问站点,并试图通过Telnet建立联接时,这个联接请求会被规则A阻塞,因为规则A正好与之相匹配。至于规则B,实际上并非毫无用处,规则B用来限制站点 Telnet服务的返回包。事实上,内部主机试图建立Telnet联接时就会被阻塞,一般不会存在返回包,但高明的用户也可能想出办法使联接成功,那时B规则也会有用,总之,有些冗余对安全是有好处的。当用户以Telnet方式访问除之外的其他站点时,规则A、B不匹配,所以应用C、D规则,内部主机被允许建立联接,返回包

33、也被允许入站。 规则E、F用于允许出站的SMTP服务,规则G、H用于允许入站的SMTP服务,SMTP服务的端口是25。 I和J规则用于允许出站的WWW服务,K、L规则用于允许网络的主机访问你的网络WWW服务器。 规则M是默认项,它实现的准则是“没有明确允许就表示禁止”。 数据包过滤类型2.5.1. IP包过滤IP分段字段用来确定数据包在传输过程中是否被重新分段,分段带来的问题是只有第一个段有高层协议的报头(如TCP头),而其他的段中没有。数据包过滤器一般是让非首段包通过,而仅对第一个分段进行过滤,因为目标主机如果得不到第一个分段,也就不能组装一个完整的数据包,因此这样做是可以接受的。强大的防火

34、墙应该考虑非第一个分段有可能泄露有用的信息,比如出站的NFS数据包几乎肯定要分段,内部网中的敏感数据经过NFS传输可能会泄露,因此防火墙要根据第一个分段的操作策略来决定是否转发非第一个分段。 IP分段也经常用来进行拒绝服务攻击。攻击者向目标主机发送第一个分段包,防火墙对这种包不作处理直接让其通过,目标主机得不到第一个分段来重组数据包时,会放弃该包,同时发一个ICMP“数据组装超时”的包给源主机。如果目标主机大量收到这种非第一个分段包,它需要占用大量的CPU时间来处理。当达到一定极限之后,目标主机就不能处理正常的服务了,而造成拒绝服务攻击。此外返回的ICMP也会泄露有用的消息,因此对这种ICMP

35、,防火墙应该过滤掉。2.5.2 .TCP包过滤TCP是面向联接的可靠传输协议,TCP的可靠主要是通过下面三条来保证的:目标主机将按发送的顺序接受应用数据; 目标主机将接受所有的应用数据; 目标主机将不重复接受任何数据。 TCP协议通过对错误的数据重传来保证数据可靠到达,并且事先要建立起联接才能传输。如果要阻止TCP的联接,仅阻止第一个联接请求包就够了。因为没有第一个数据包,接受端不会吧之后的数据组装程数据包,且不会建立起联接。TCP的启动联接请求包中的ACK位为0,而其他的数据包ACK位为1,所以可以通过对ACK位的判断来确定是否是启动联接请求。2.5.3. UDP数据包过滤与TCP数据包结构

36、相比, UDP数据包要比TCP数据包简单得多,这是因为UDP是一种无联接得协议,而TCP是一种有联接得协议。 UDP不向TCP那样可靠,它得传输就像邮局发明信片一样,发出去后,得不到答复,不知道明信片是否真的到达了目的地。UDP数据包到通过MTU(最大传输单元)小的网络需要分段,然后各段分别传输,任何一个片段丢失后,数据包就损坏了,而UDP没有重传机制,这样就不能保证数据传输的完整性。即使数据包不分段,数据包也可能由于错误路由或网络拥挤而丢失。 UDP的返回包的特点时目标端口是请求包的源端口,目标地址是请求包的源地址,源端口是请求包的目的端口,源地址是请求包的目标地址。因此,过程2的数据包被阻

37、塞,而过程1的数据包被允许进入。2.5.4. 源端口过滤在前面的例子中,过滤规则用到了源端口,如果防火墙在过滤数据包时不考虑源端口,很容易给入侵者可乘之机。假设路由器不支持检查源端口,要实现发送电子邮件的功能,规则如表所示。表 过滤规则示例规则方向源地址目标地址协议源端口目标端口动作A入任意拒绝B出任意TCP/1023任意C出任意TCP/25允许D如任意允许规则A、B允许入站的SMTP联接。 规则C、D允许出站的SMTP联接。2.2.5.ACK位在数据包过滤中的作用ACK位在数据包过滤中的作用是很关键的。假设防火墙不考虑ACK位,那么对于允许内部网络主机利用Telnet服务访问Internet

38、的策略可以以下方式实现。 如果有一个用户在他的主机上,用端口号23联接到内部网主机的一个大于1023的端口上,则这种联接将会被允许,可见,系统存在着安全缺口。 一般只检查返回包的ACK位,因为联接请求包的ACK位可能不会被置位,而返回包ACK位一定会被置位。当加上ACK位检测后,得到如表所示的规则。表 过滤规则示例规则方向源地址目标地址协议源端口目标端口ACK设置动作A出任意TCP102323任意允许B入任意是允许当黑客试图通过端口23建立入站联接时,因为第一个请求包的ACK不被置位,所以该包回被禁止进入你的内部网络,第一个联接请求包被拒绝后,联接就很难建立起来了。如果入侵者把第一个数据包的A

39、CK位置位,则该数据包可以通过防火墙,但目标主机会把这个数据包当作以前联接中的一个数据包,而不是建立一个新的联接。因为这个数据包不属于目标主机所知的任何联接(序列号不能匹配),所以它被抛弃掉。第三章 具体实现此虚拟网络防火墙主要分为四个模块:封包监视,控制规则,日志查询,安全策略。模块之间具体关系如图所表示。图虚拟防火墙设计时采用JAVA(前台)+数据库SQL(后台),利用JAVA进行界面及各种操作选择的设计,在此基础上建立的JDBC,为独立于数据库管理系统DBMS的应用提供了能与多个不同数据库连接的通用接口。下面就封包监视这一模块的设计进行分析。 数据库表的建立 数据库表的创建主要是为了方便

40、各种攻击流规则的记录的增加和删除,以及日志的记录和查询都可以很方便的通过数据库来进行操作。具体各个表的创建如下所示:表RuleBook用来记录各种匹配规则,表结构如表所示。表 RuleBook匹配规则表 RuleName 用来记录规则名称,主键,char类型Protocol 协议类型,char类型Source1IP用来记录源端IP地址,int类型Source1IP用来记录源端IP地址,int类型Source1IP用来记录源端IP地址,int类型Source1IP用来记录源端IP地址,int类型SourcePort 源端口号,int类型Direct 单向双向选择,char类型Aim1IP用来记录

41、目的IP地址,int类型Aim2IP用来记录目的IP地址,int类型Aim3IP用来记录目的IP地址,int类型Aim4IP用来记录目的IP地址,int类型AimPort目的端口号,int类型Remark备注说明,char类型表Safety用来记录各种受约束网络信息,表结构如表所示。表 Safety受约束网络信息表SafetyName用来记录约束网络名称,主键,char类型Source1aIP Source2aIP用来记录开始IP地址,int类型Source3aIP Source4aIP用来记录开始IP地址,int类型Source1bIP Source2bIP用来记录结束IP地址,int类型S

42、ource3bIP Source4bIP用来记录结束IP地址,int类型Remarklog备注说明,char类型表WatchTable用来记录日志信息,表结构如表所示。表 WatchTabel日志记录表WatchName用来记录日志编号,主键,char类型Pro协议类型,char类型S1IP S2P S3IP S4IP用来记录源端IP地址,int类型SPort源端口号,int类型Direction单向双向选择,char类型A1IP A2IP A3IP A4IP用来记录目的IP地址,int类型APort目的端口号,int类型Remark1log备注说明,char类型 封包监视的设计在此模块中用户可以将源端IP地址、源端端口、目的IP地址、目的端口,以及协议类型和数据包进出为双向或者单向进行选择,在点击确定按钮之后,先将获得信息插入日志表中,其中备注项为空,系统将会将获得信息到RuleBook规则表中进行匹配,如果能匹配到相符合的规则,则将在日志记录中的备注项中加入相关的异常流说明。进行匹配的Java代码如下:Try();oString();获得

温馨提示

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

评论

0/150

提交评论