防火墙算法设计与开发课程设计.docx

上传人:b****5 文档编号:7925452 上传时间:2023-01-27 格式:DOCX 页数:41 大小:75.82KB
下载 相关 举报
防火墙算法设计与开发课程设计.docx_第1页
第1页 / 共41页
防火墙算法设计与开发课程设计.docx_第2页
第2页 / 共41页
防火墙算法设计与开发课程设计.docx_第3页
第3页 / 共41页
防火墙算法设计与开发课程设计.docx_第4页
第4页 / 共41页
防火墙算法设计与开发课程设计.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

防火墙算法设计与开发课程设计.docx

《防火墙算法设计与开发课程设计.docx》由会员分享,可在线阅读,更多相关《防火墙算法设计与开发课程设计.docx(41页珍藏版)》请在冰豆网上搜索。

防火墙算法设计与开发课程设计.docx

防火墙算法设计与开发课程设计

课程设计

 

题目:

防火墙算法设计与开发

 

简介:

在以往的防火墙规则输人过程中,用户需要自己判定规则的语义是否正确,但随着规则复杂度的增加,规则也变得难以理解,这使得规则集的维护变得非常困难。

针对这一问题,本文提出了一种防火墙规则分析、翻译的算法,对于用户输入的规则,系统联系上下文将其翻译为自然语言,辅助管理员判断输入的规则是否符合其初衷。

当对规则集中的规则进行添加、删除或修改操作时,大量的过滤规则中可能存在冗余的规则,导致防火墙的管理难度加大、吞吐率下降。

针对这一问题,本文提出了一种规则冗余检测的算法,以定位冗余的规则,使得管理人员不用在大量的规则里手工查找冗余,同时给出了导致冗余的相关规则,方便管理人员修改。

防火墙规则分析、翻译的算法研究

1引言

随着互联网的发展,网络安全问题已经引起了学术界和工业界的广泛重视。

随着来自网络的攻击持续不断的增长,防火墙已经成为网络安全领域的一种核心设备,并广泛应用于企业网络和小型的家庭网络。

作为安全网络抵御攻击和过滤XX数据流的前沿设备,防火墙的过滤决策是基于根据预先定义的安全策略而形成的一组有序的过滤规则。

虽然防火墙的成功部署是保证网络安全的重要一步,但成功部署并不意味着就可以理所当然的获得相应的安全保障,这是因为防火墙安全规则管理的复杂性可能会影响防火墙的安全。

实际上,随着规则集中规则数目的增多,不可避免的会出现下面两个问题:

(1)随着规则复杂度的增加,规则也变得难以理解,当维护规则集的人员变更时,会使规则集的维护变得很困难。

(2)当对规则集中的规则进行删除、修改或者添加规则时,大量的过滤规则中可能存在冗余的规则,导致防火墙的管理难度加大、吞吐率下降。

所以就有必要在实施安全策略之前,对过滤规则进行必要的分析,发现并纠正其中的冗余,而且最好能为网络管理人员提供相应的工具,帮助其完成安全策略的管理工作。

针对第一个问题,本文提出了一种规则分析、翻译的方法,对于用户输入的规则,系统联系上下文将其译为自然语言,辅助管理员判断输入的规则是否符合其初衷;针对规则冗余的问题,提出了一种检测冗余的算法,以定位冗余的规则,使得管理人员不用在大量的规则里手工查找冗余,同时给出了导致冗余的相关规则,方便管理人员修改。

2网络安全

2.1网络安全概述及其重要性

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

网络安全从其本质上来讲就是网络上的信息安全。

从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。

网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。

在社会日益信息化的今天,信息已成为一种重要的战略资源,信息的应用也从原来的军事、科技、文化和商业渗透到当今社会的各个领域,其在社会生产、生活中的作用日益显著。

传播、共享和自增值是信息的固有属性,与此同时,又要求信息的传播是可控的,共享是授权的,增值是确认的。

因此信息的安全和可靠在任何状况下都是必须要保证的。

信息网络的大规模全球互联趋势,Internet的开放性,以及人们的社会与经济活动对计算机网络依赖性的与日俱增,使得计算机网络的安全性成为信息化建设的一个核心问题。

以Internet为代表的信息网络技术的应用正日益普及和广泛,应用层次正在深入,应用领域从传统的小型业务系统,逐渐向大型关键业务系统扩展,典型的如党政部门信息系统、金融业务系统、企业商务系统等。

伴随网络的普及,安全日益成为影响网络效能的重要问题,而Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全提出了更高的要求,这主要表现在:

(1)开放性的网络,导致网络的技术是全开放的,任何一个人、团体都可能从中获得所需的东西,因而网络所面临的破坏和攻击可能是多方面的。

例如,来自物理传输线路的攻击能对网络通信协议和实现实施攻击;对软件实施攻击,也可以对硬件实施攻击。

(2)国际性的一个网络还意味着网络的攻击不仅仅来自本地网络的用户,它可以来自Internet上的任何一个机器,也就是说,网络安全所面临的是一个国际化的挑战。

(3)自由意味着网络最初对用户的使用并没有提供任何的技术约束,用户可以自由地访问网络,自由地使用和发布各种类型的信息。

用户只对自己的行为负责,而没有任何的法律限制。

尽管开放的、自由的、国际化的Internet的发展给政府机构、企事业单位带来了革命性的改革和开放,使得他们能够利用Internet提高办事效率和市场反应能力,以便更具竞争力。

通过Internet,他们可以从异地取回重要数据,同时又要面对网络开放带来的数据安全的新挑战和新危险。

如何保护企业的机密信息不受黑客和工业间谍的入侵,已成为政府机构、企事业单位信息化健康发展所要考虑的重要事情之一。

2.2计算机网络面临的安全性威胁

2.2.1非授权访问

未经过同意,就使用网络或计算机资源被看作非授权访问,例如有意避开系统访问控制机制,对网络设备及资源进行非正常作用;或擅自扩大权限,越权访问。

它主要有以下几种形式:

非法用户进入网络系统进行违法操作;合法用户以XX方式进行操作等。

2.2.2欺骗类攻击

网络协议本身的一些缺陷可以被利用,使黑客可以对网络进行攻击,主要方式有:

IP欺骗;ARP欺骗;DNS欺骗;Web欺骗;电子邮件欺骗;源路由欺骗;地址欺骗等。

2.2.3窃取机密

攻击者非法访问网络、窃取信息。

一般可以通过在不安全的通道上截取正在传输的信息或者利用协议或网络的弱点来实现。

信息传输安全问题有四种基本类型,如图2.1所示。

信息源节点

非法用户

信息目的节点

信息源节点

信息目的节点

非法用户

c)信息被篡改

d)信息被伪造

篡改

伪造

图2.1信息传输安全问题的四种基本类型

2.2.4计算机病毒

病毒是黑客实施网络攻击的有效手段之一,它具有传染性、隐蔽性、寄生性、繁殖性、潜伏性、针对性、衍生性、不可预见性和破坏性等特性,而且在网络中其危害更加可怕,目前可通过网络进行传播的病毒已有数万种,可通过注入技术进行破坏和攻击。

2.2.5软件漏洞

随着软件系统规模的不断增大,系统中的安全漏洞也不可避免的存在而且也在不断增多。

比如常用的操作系统,无论是Windows还是UNIX几乎都存在或多或少的安全漏洞,众多的各类服务器、浏览器及其它常用的软件等也都不同程度的存在着安全隐患。

2.2.6恶意攻击

当今最突出的就是拒绝服务攻击DoS(DenialofService)。

它通过使计算机功能或性能崩溃来阻止提供服务。

典型拒绝服务攻击有资源耗尽和资源过载两种。

2.3网络安全防御技术

2.3.1防火墙技术

防火墙是建立在两个网络边界上的实现安全策略和网络通信监控的系统或系统集,它强制执行对内部网络(如校园网)和外部网络(如Internet)的访问控制。

通过建立一整套规则和策略来监测、限制、转换跨越防火墙的数据流,从而达到保护内部网络的目的。

防火墙的功能主要有访问控制、授权认证、地址转换、均衡负载等。

它已经成为目前保护内部网络最重要的安全技术之一。

2.3.2漏洞检测技术

漏洞检测就是对重要计算机系统或网络系统进行检查,发现其中存在的薄弱环节和所具有的攻击性特征。

通常采用两种策略,即被动式策略和主动式策略。

被动式策略基于主机检测,对系统中不合适的设置、口令以及其他同安全规则相背的对象进行检查;主动式策略基于网络检测,通过执行一些脚本文件对系统进行攻击,并记录它的反应,从而发现其中的漏洞。

2.3.3入侵检测技术

入侵检测技术用来对各种入侵行为进行检测,它通过对(网络)系统的运行状态进行监视,以发现各种攻击企图、攻击行为或者攻击结果,然后及时的发出报警或做出相应的响应,以保证系统资源的机密性、完整性与可用性。

2.3.4防病毒技术

防病毒技术主要是通过自身常驻系统内存,通过监视、判断系统是否存在病毒来阻止计算机病毒进行计算机系统,防止病毒对系统进行破坏,从而可以有效防止计算机病毒对系统造成的危害,

3防火墙技术

3.1防火墙的概念

3.1.1防火墙的定义

防火墙是指设置在不同网络(如可信任的企业内部网络和不可信的公共网)或网络安全域之间的一系列部件的组合。

它可以通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。

在原理上,防火墙是两种机制的组合:

一种是阻断数据流,另一种是允许数据流。

一些防火墙侧重于阻断数据流,另一些防火墙侧重于允许数据流。

在逻辑上,防火墙是一个分离器、一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。

设立防火墙的主要目的是保护一个网络不受来自另一个网络的攻击。

通常,被保护的网络属于我们自己或者是我们负责管理的,而所要防备的网络则是一个外部网络,该网络是不可信赖的,因为可能有人会从该网络上对我们的网络发起攻击,破坏网络安全。

对网络的保护包括下列工作:

拒绝XX的用户访问,阻止XX的用户存取敏感数据,同时允许合法用户不受妨碍的访问网络资源。

3.1.2防火墙的作用

防火墙作为网络防护的第一道防线,它由软件或/和硬件设备组合而成,它位于企业或网络群体计算机与外界通道(Internet)的边界,限制着外界用户对内部网络的访问以及管理内部用户访问外界网络的权限。

防火墙是一种必不可少的安全增强点,它将不可信网络同可信任网络隔离开。

防火墙筛选两个网络间所有的连接,决定哪些传输应该被允许,哪些应该被禁止,这取决于网络制定的某一形式的安全策略。

防火墙主要提供以下四种服务:

(1)服务控制:

确定可以访问的网络服务类型。

(2)方向控制:

特定服务的方向流控制。

(3)用户控制:

内部用户、外部用户所需的某种形式的认证机制。

(4)行为控制:

控制如何使用某种特定的服务。

3.2防火墙相关技术

3.2.1IP与MAC地址绑定

在内部网络的应用中,经常会遇到内部网络用户擅自修改IP地址,以获取一个合法IP地址来进行相应的网络应用,这样会使内部网络在地址资源的分配和使用上出现混乱,大大影响内部网络的正常运行。

更有甚者使用他人的地址在网络上发布非法信息、破坏网络安全,其影响将更为严重,而且,在网络事故发生以后,地址追寻的难度很大。

为了防止这种地址盗用,防火墙提供了IP与MAC地址绑定的功能。

IP与MAC的地址绑定规定一个IP只对应于某一特定的网卡(每个网卡具有唯一的MAC地址),即限定一个IP地址只能在一台的计算机上使用。

当该计算机通过防火墙访问Internet时,防火墙要检查其发出的数据包中的IP及MAC是否与防火墙上的规则相符,如果相符就放行,否则就不允许其通过防火墙。

这样就大大方便了网络的IP地址管理。

3.2.2网络地址转换技术(NAT)

防火墙利用NAT技术能透明地对所有内部地址进行转换,使外部网络无法了解内部网络的内部结构,同时允许内部网络使用自己定制的IP地址和专用网络,防火墙能详尽记录每一个主机的通信,确保每个数据分组能送往正确的地址。

同时使用NAT的网络,与外部网络的连接只能由内部发起,极大地提高了内部网络的安全性。

而且,NAT的另一个显而易见的用途是解决IP地址匮乏的问题。

3.2.3多级过滤技术

为保证系统的安全性和防护水平,防火墙采用了三级过滤措施。

在分组过滤一级,能过滤所有的源路由分组和假冒的IP源地址;在应用级网关一级,能利用FTP、SMTP等各种网关,控制和监测Internet提供的所用能用服务;在电路网关一级,实现内部主机与外部站点的透明连接,并对服务的通行实行严格控制。

3.2.4审计和警告

防火墙的审计和告警功能十分健全,日志文件包括:

一般信息、内核信息、接收邮件、邮件路径、发送邮件、已收消息、已发消息、连接需求、已鉴别的访问、告警条件、管理日志、FTP代理等。

告警功能会监测每一个TCP或UDP连接,并能以邮件、声响等多种方式报警、此外,新一代防火墙还在网络诊断,数据备份与保全等方面具有特色。

4Netfilter/Iptables

4.1Netfilter/Iptables简介

Linux因其健壮性、可靠性、灵活性以及好象无限范围的可定制性而在IT业界变得非常受欢迎。

Linux具有许多内置的能力,使开发人员可以根据自己的需要定制其工具、行为和外观,而无需昂贵的第三方工具。

Netfilter/Iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。

如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。

在如ipfwadm和ipchains这样的Linux信息包过滤解决方案中,Netfilter/IptablesIP信息包过滤系统是最新的解决方案,而且也是第一个集成到Linux内核的解决方案。

对于Linux系统管理员、网络管理员以及家庭用户(他们想要根据自己特定的需求来配置防火墙、在防火墙解决方案上节省费用和对IP信息包过滤具有完全控制权)来说,Netfilter/Iptables系统十分理想。

虽然Netfilter/IptablesIP信息包过滤系统被称为单个实体,但它实际上由两个组件Netfilter和Iptables组成。

Netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

Iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

4.2Netfilter/Iptables是如何工作的

4.2.1配置防火墙和信息包过滤

对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。

为了确定网络流量是否合法,防火墙依靠它所包含的由网络或系统管理员预定义的一组规则。

这些规则告诉防火墙某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。

术语“配置防火墙”是指添加、修改和除去这些规则。

网络流量由IP信息包(或简称信息包)——以流的形式从源系统传输到目的地系统的一些小块数据——组成。

这些信息包有头,即在每个包前面所附带的一些数据位,它们包含有关信息包的源、目的地和协议类型的信息。

防火墙根据一组规则检查这些头,以确定接受哪个信息包以及拒绝哪个信息包。

我们将该过程称为信息包过滤。

4.2.2Netfilter/Iptables的工作原理

Netfilter/IptablesIP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。

这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。

在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

通过使用用户空间的Iptables工具,可以构建自己的定制规则,这些规则存储在内核空间Netfilter的信息包过滤表中。

这些规则具有目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。

如果某个信息包与规则匹配,那么使用目标ACCEPT允许该信息包通过。

还可以使用目标DROP或REJECT来阻塞并杀死信息包。

对于可对信息包执行的其它操作,还有许多其它目标。

根据规则所处理的信息包的类型,可以将规则分组在链中。

处理入站信息包的规则被添加到INPUT链中。

处理出站信息包的规则被添加到OUTPUT链中。

处理正在转发的信息包的规则被添加到FORWARD链中。

这三个链是基本信息包过滤表中内置的缺省主链。

另外,还有其它许多可用的链的类型(如PREROUTING和POSTROUTING),以及提供用户定义的链。

每个链都可以有一个策略,它定义“缺省目标”,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。

建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了。

这时内核空间从用户空间接管工作。

当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。

我们将这个过程称为路由。

内核根据信息包的来源和目的地是属于内部系统或者是外部系统,将信息包发往不同的规则链:

(1)如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的INPUT链。

(2)如果信息包源自系统内部或系统所连接的内部网上的其它源,并且此信息包要前往另一个外部系统,那么信息包被传递到OUTPUT链。

(3)如果信息包源自外部系统并前往外部系统,那么信息包被传递到FORWARD链。

接下来,将信息包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则完全匹配。

如果信息包与某条规则匹配,那么内核就对该信息包执行由该规则的目标指定的操作。

但是,如果信息包与这条规则不匹配,那么它将与链中的下一条规则进行比较。

最后,如果信息包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该信息包。

理想的策略应该告诉内核DROP该信息包。

图4.1用图形说明了这个信息包过滤过程。

图4.1信息包过滤过程

4.3Netfilter/Iptables的规则和链

4.3.1规则的建立

通过向防火墙提供有关对来自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。

通过使用Netfilter/Iptables系统提供的特殊命令iptables,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。

关于添加/除去/编辑规则的命令的一般语法如下:

iptables[-ttable]command[match][target]

4.3.2表(table)

[-ttable]选项允许使用标准表之外的任何表。

表是包含仅处理特定类型信息包的规则和链的信息包过滤表。

有三种可用的表选项:

数据包过滤(filter表)、网络地址转换(nat表)和数据包处理(mangle表)。

该选项不是必需的,如果未指定,则filter用作缺省表。

filter表用于一般的信息包过滤,它包含INPUT、OUTPUT和FORWARD链。

nat表用于要转发的信息包,它包含PREROUTING、OUTPUT和POSTROUTING链。

如果信息包及其头内进行了任何更改,则使用mangle表。

该表包含一些规则来标记用于高级路由的信息包,该表包含PREROUTING和OUTPUT链。

注:

PREROUTING链由指定信息包一到达防火墙就改变它们的规则所组成,而POSTROUTING链由指定正当信息包打算离开防火墙时改变它们的规则所组成。

4.3.3命令(command)

上面这条命令中具有强制性的command部分是iptables命令的最重要部分。

它告诉iptables命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。

以下是最常用的一些命令:

-A或--append:

该命令将一条规则附加到链的末尾。

-D或--delete:

该命令从链中删除指定要匹配的规则或者在链中某指定编号的规则。

-P或--policy:

该命令设置链的缺省目标,即策略。

所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略。

-N或--new-chain:

用命令中所指定的名称创建一个新链。

-F或--flush:

如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。

此参数用于快速清除。

-L或--list:

列出指定链中的所有规则。

4.3.4匹配(match)

Iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源IP地址、目的IP地址、源端口、目的端口和协议)。

匹配分为两大类:

通用匹配和特定于协议的匹配。

这里,我将研究可用于采用任何协议的信息包的通用匹配。

下面是一些重要的且常用的通用匹配:

-p或--protocol:

该通用协议匹配用于检查某些特定协议。

协议示例有TCP、UDP、ICMP用逗号分隔的任何这三种协议的组合列表以ALL(用于所有协议)。

ALL是缺省匹配。

可以使用!

符号,它表示不与该项匹配。

-s或--source:

该源匹配用于根据信息包的源IP地址来与它们匹配。

该匹配还允许对某一范围内的IP地址进行匹配,可以使用!

符号,表示不与该项匹配。

缺省源匹配与所有IP地址匹配。

-d或--destination:

该目的地匹配用于根据信息包的目的地IP地址来与它们匹配。

该匹配还允许对某一范围内IP地址进行匹配,可以使用!

符号,表示不与该项匹配。

4.3.5目标(target)

目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。

除了允许用户定义的目标之外,还有许多可用的目标选项。

下面是常用的一些目标:

ACCEPT:

当信息包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。

该目标被指定为-jACCEPT。

DROP:

当信息包与具有DROP目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。

该目标被指定为-jDROP。

REJECT:

该目标的工作方式与DROP目标相同,但它比DROP好。

和DROP不同,REJECT不会在服务器和客户机上留下死套接字。

另外,REJECT将错误消息发回给信息包的发送方。

该目标被指定为-jREJECT。

RETURN:

在规则中设置的RETURN目标让与该规则匹配的信息包停止遍历包含该规则的链。

如果链是如INPUT之类的主链,则使用该链的缺省策略处理信息包。

它被指定为-jumpRETURN。

4.3.6保存规则

用上述方法所建立的规则会被保存到内核中,当重新引导系统时,就会丢失。

如果将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用,那么必须将该规则集保存在文件中。

可以使用iptables-save命令:

iptables-save>iptables-script。

现在,信息包过滤表中的所有规则都被保存在文件iptables-script中。

无论何时再次引导系统,都可以使用iptables-restore命令将规则集从该脚本文件恢复到信息包过滤表:

iptables-restore

4.4为方便讨论所作的简化

本文只涉及到数据包过滤,即filter表。

为了方便讨论,做出了以下简化。

本文以后的论述,都是在有以上这些简化下进行的。

做出这些简化并不会影响论述的正确性。

✓规则表中只包含filter表的过滤规则,不含nat表和mangle表的规则

✓过滤规则中只有INPUT链

✓匹配条件只包含源地址和目的地址

✓规则目标只包含ACCEPT和DROP

5防火墙规则分析及翻译

5.1规则顺序的重要性

因防火墙规则表中的规则是顺序检测的,因此规则表中的顺序是非常重要的,前面的规则可以允许被后面的规则拒绝的数据包通过,反之不成立,如下的三条规则:

Øiptables-AINPUT-shost1-jREJECT

Øiptables-AINPUT-pTCP-dMAIL-dport25

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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