本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx

上传人:b****3 文档编号:7031425 上传时间:2023-05-11 格式:DOCX 页数:52 大小:1.72MB
下载 相关 举报
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第1页
第1页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第2页
第2页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第3页
第3页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第4页
第4页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第5页
第5页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第6页
第6页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第7页
第7页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第8页
第8页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第9页
第9页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第10页
第10页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第11页
第11页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第12页
第12页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第13页
第13页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第14页
第14页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第15页
第15页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第16页
第16页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第17页
第17页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第18页
第18页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第19页
第19页 / 共52页
本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx

《本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx(52页珍藏版)》请在冰点文库上搜索。

本科毕业设计基于snort和iptables的简单ips系统的设计与实现.docx

本科毕业设计基于snort和iptables的简单ips系统的设计与实现

 

本科生毕业设计

(申请学士学位)

 

论文题目基于snort和iptables的简单IPS系统

的设计与实现

作者姓名周伟伟

所学专业名称网络工程

指导教师戴支祥

 

2014年5月25日

 

学生:

(签字)

学号:

2010211262

答辩日期:

2014年6月14日

指导教师:

(签字)

基于snort和iptables的简单IPS系统的设计与实现

摘要:

面对日益严峻的网络安全形势,传统的网络安全技术显得力不从心。

针对入侵检测系统(IntrusionDetectionSystem,IDS)和传统防火墙的缺陷,本文设计并实现了一个Ubuntu系统下将传统防火墙iptables和入侵检测系统snort相互联动的简单IPS系统。

运用snort记录攻击事件,采用Java编写了实时监控程序,实时监测snort报警日志,如果监测到攻击事件,系统动态生成规则,应用iptables实时阻断攻击。

该系统使用Browser/Server模式,管理员登录系统后才可以进行远程操作,支持通过Web页面关闭/启动系统,插入/删除/查看iptables规则,插入/删除/查看snort规则,管理管理员的基本信息等。

管理员配置的所有规则都通过MySQL数据库进行保存,所有的攻击事件和iptables防火墙的响应事件也保存在数据库中,方便管理员日后进行查找和分析。

同时搭建了一个测试平台来测试系统的可靠性。

关键词:

iptables;snort;Browser/Server;联动

DesignandImplementationof SimpleIPSSystemBasedonsnortandiptables

 

Abstract:

Facingtheincreasinglyserioussituationofnetworksecurity,thetraditionalnetworksecuritytechnologyisinsufficient.Aimingattheshortageoftraditionalfirewallandintrusiondetectionsystem,thisarticledesignsanIntrusionPreventSystem(IPS)tolinkintrusiondetectionsystemsnortandthefirewalliptablesunderUbuntu.IPSusesthesnortrecordingattacks,runsaprogramwritteninJavatomonitorsnort’salarmlog.IfIPSdetectsanintrusion,itcandynamicallygeneraterulesandcalliptablesblockingattacksintime.ThesystemadoptsBrowser/Servermode,admintorscanremotelyoperatesystemafterlogginginsystem.Allofthesefunctionsaresupportedthroughwebpages,suchasshutdown/startup,inserting/deleting/viewingrulesofsnortandiptables,managingthebasicinformationofadministratorsandsoon.Alltherules,attacksandrespondsarestoredintheMySQLdatabaseinordertofacilitatetheadministratortosearchandanalysis.Atthesametime,aplatformfortestingpurposeisbuilt.

Keywords :

iptables;snort;Browser/Server;cooperation

1绪论

1.1研究现状

随着Internet的快速发展,诸如电子商务、电子化办公等已经或正在成为现代生活的重要组成部分。

但是Internet让工作及生活变的越来越方便的同时,也使得网络安全风险不断增加。

我们必须面对和解决网络安全隐患。

2013年的“斯诺登事件”,就是一个典型的网络安全事件。

网络安全的重要性不言而喻。

为了解决日益严重的网络安全隐含,许多网络安全技术被推出,防火墙和入侵检测系统就是其中两种比较成熟的技术。

防火墙是一个成熟的网络安全技术,主要作用是访问控制和身份认证,它是保障网络安全的的第一道安全门,但是防火墙自身也存在着一些缺陷。

首先,它是一种静态的网络安全技术,因为它的安全策略需要事先设计好。

其次,防火墙无法拦截所有类型的攻击,比如一些协议漏洞发起的攻击和来自网络内部的攻击。

基于以上问题,为了保障网络的安全就需要网络管理员实时查看网络的状态,及时发现攻击,并对攻击进行分析重新制定安全策略。

导致了大量的人力浪费在重复的劳动上[1]。

入侵检测系统是保障网络安全的第二道安全门,它是一种被动型的网络安全技术,主要是用来监听网络运行状态,并判断是否有入侵行为发生,并记录入侵行为的基本信息。

但是相对防火墙来说,IDS缺少阻断攻击的能力。

随着网络安全形势的日益严峻,单纯的防火墙和入侵检测系统都不能有效保障网络安全。

真正的纵深防御技术应该不仅能够发现攻击事件,而且能够及时地、主动地阻止攻击,防止攻击对用户造成危害。

正是基于这种思想,一种新的网络安全技术——入侵防御系统(IntrusionPreventionSystem,IPS)被研究出来。

2002年一些国际网络安全组织首次提出入侵防御系统的概念,并随着网络安全问题的日益突出,越来越多的人开始关注IPS。

IPS在随后的几年里得到了快速发展。

2003年6月Gartner公司副总裁RichardStiennon在其发表的著名的题为《IntrusionDetectionIsDead-LongLiveIntrusionPrevention》的研究报告中提出:

IDS不但不能给网络带来安全性,反而会增加网络管理员的困扰,建议用户使用IPS来代替IDS[2]。

经过多年研究,国外一些公司推出了各自的IPS产品,比如CISOC公司的IPS4300/4500系列、Juniper公司的JuniperNetworks,Symantec公司的ManHunt和IntruderAlert、TopLayer公司的ips5500、McAfee的IntruShield系列和Entercept系列、NetScreen的IDP系列等[3]。

相比较国外,国内对于IPS的研究起步较晚,直到2004年方正科技公司才推出了方正方通入侵防御系统[4]。

2005年9月15日,绿盟科技也推出自己的入侵防御系统ICEYENIPS[5]。

不久后,北京启明星辰信息技术有限公司推出了其自主研发的天清系列入侵防御系统,比如天清入侵防御系统NIPS860[6]。

华为公司在2013安捷信合作伙伴大会上推出了一款功能强大的入侵检测系统NIP5000入侵防御系统,并在同年5月份发布了一款世界领先的万兆级入侵防御系统NIP5500[7]。

IPS已经逐渐成为网络安全市场的主流产品,并且还在继续研发并完善中。

1.2系统设计的主要意义

防火墙是一种基于规则库在外部网络和内部网络之间实行访问控制的系统。

逻辑上,防火墙是由限制器和分离器组成;实际中,防火墙一般是由一些硬件设备和软件设备组成。

它按照预制的规则和配置,检测然后过滤网络流量,从而保护网络安全。

但是它的缺点也很明显:

防火墙的规则是固定的,不能依据网络运行情况进行动态调整,也不能记录攻击行为用于事后分析和取证等[8]。

总之,防火墙存在以下几个问题:

防火墙的规则编写较难。

编写过于严格,网络的正常运行则会受到影响;编写过于宽松,网络安全则难以保障。

防火墙是一种静态的技术,它不能动态地处理入侵事件。

防火墙无法阻止不经过它的入侵。

比如来自内网的入侵等。

防火墙无法阻止一些基于协议的入侵。

比如针对Web、FTP等协议的攻击。

入侵检测系统是指可以通过规则库检测入侵行为,并对被检测出的入侵行为做出正确响应的系统。

根据其工作原理的不同,可分为主机型、网络型和分布式型三种。

入侵检测系统虽然能够实时的检测网络安全状态,但是它也有一些缺点:

无法检测非面向连接的攻击。

无法检测拒绝服务攻击。

入侵检测的可靠性不高。

当有针对系统本身的攻击时,会影响系统正常运行。

防火墙和入侵检测系统在实际网络环境中都有一些不足之处,因此将二者相互联动,组建IPS系统可以取长补短,更好的保护网络安全。

相比较于传统防火墙和入侵检测系统,入侵防御系统是一种主动的、积极的网络安全技术[9]。

但是商业IPS的价格高昂,许多中小型企业不具备购买能力。

因此,本设计选用开源的snort和Ubuntu操作系统自带的iptables相互联动来实现简单的IPS系统。

开源软件的免费特性使得企业无需考虑系统部署成本,开放性使得企业不用担心被一家或某几家商业软件绑架,丰富的技术参考资料和大量已有的部署案例为成功进行系统部署提供了技术参考和保障。

同时本设计的开发模式使用B/S模式,前台Web界面提供用户管理IPS的功能,后台采用JAVA监控snort报警日志并将攻击方添加到iptables阻止规则链中。

1.3文章结构

本设计共分为六部分。

第一部分剖析了本设计的研究背景和研究意义,并且简单介绍了IPS的国内外研究现状和主要产品。

第二部分介绍了snort和iptables规则的构成以及各自的工作原理。

同时也分析了snort和iptables的优缺点,并描述了IPS的工作原理及特征。

第三部分分析了本系统的市场需求和应用价值,然后对系统的开发进行了业务流程分析和可行性分析。

第四部分首先对系统每个模块进行了设计和功能介绍,然后对数据库进行了概念设计和逻辑设计。

第五部分介绍了系统主要功能模块的关键代码,并展示了运行界面。

第六部分介绍了测试使用的攻击手段,并展示了测试的结果。

最后是结束语,对系统进行了简单的介绍和概括。

2相关技术和理论基础

2.1snort简介

2.1.1snort概述

snort是一款轻量级网络入侵检测系统(NetworkIntrusionDetectionSystem,NIDS)。

它是以Sniffer为基础,通过不断地重写代码,改进功能,才成为了一款流行的NIDS。

本质上snort是一款网络数据包嗅探器,但是它的创新性在于使用规则来检测数据包。

snort的检测是基于规则库的,所有snort规则都被保存在文本文件中,并按照攻击类型保存为不同名称的文件,这些文件构成了规则库。

snort在启动时通过配置文件来读取规则检测数据包以发现入侵事件,并进行处理,可供选择的方式有:

忽略、记录或报警。

snort有诸多优点:

支持多种硬件平台和所有的操作系统平台,用户可自行选择。

采用模块化结构,具有较强的可扩展性,对于新的攻击手段,只需简单的添加新的规则就可以检测到。

规则存储在文本文件中,方便用户改写规则。

用户可以添加自己的规则,也可以删除规则库中的规则。

snort是开源的、免费的软件。

snort也有一些缺点:

snort的正确安装非常困难,各个组件相互协调才能保证系统稳定的运行。

snort依赖的Libpcap自身存在缺陷,流量超过百兆就导致系统奔溃。

容易产生误报警,对于合法流量只要匹配规则就会报警。

文本形式的规则反而加大了用户的配置难度,对于新手很难真确配置。

2.1.2snort工作原理

snort的模块化结构,使得系统具有较好的可扩展型。

它是由下列几个部分组成:

包解码器、检测引擎及插件、预处理器插件和报警输出模块等。

各个模块相互合作,当检测到snort规则库中已定义的的攻击特征时,产生指定形式的报警信息[10]。

snort的工作原理如图2-1所示。

图2-1snort工作原理

snort的运行是基于插件的,所有的插件都是依据snort官方提供的函数接口开发的。

用户自由安装功能插件,也可以自己开发出适合自己的插件,这使得功能扩展更加简单。

2.1.3snort规则

snort作为一款流行的NIDS,它出类拔萃之处在于它的规则文件被设计成可编辑的文本文件。

完整的snort规则应该由两部分构成:

括号前面的规则头和括号里面的规则体。

比如alerttcpanyany->anyany(flags:

A;ack:

0;msg:

“NMAPTCPping”;)就是个典型的规则。

规则头是规则不可或缺的一部分,规则头可以定义攻击的一些简单特征,比如源地址、目的地址、源端口、目的端口、协议类型等基本信息,并且它定义了对于入侵事件snort应该采取哪种规则动作。

概括起来规则头可以分为7个部分:

规则动作、协议类型、源地址、源端口、目的地址、目的端口和方向操作符。

规则动作是构成规则头的第一个部分,它告诉snort当检测到入侵时,探测引擎将会采取什么样的响应。

Snort规则动作可分为预置规则动作和自定义规则动作。

5种预置的动作如表2-1所示:

表2-1snort预置规则动作

规则动作

含义

alert

应用默认机制产生告警,以及做相应记录

log

对包应用规定机制进行记录

pass

忽略这个数据包

activate

先告警,接着activate一个不同的dynamic

dynamic

待一条规则激活,接着记录日志

自定义规则动作可以使用以下通用结构来定义:

ruletype动作名称

{

Actiondefinition

}

自定义动作定义是在大括号内完成,动作名称的则是在大括号外的ruletype关键字之后。

规则动作定义完成之后,必须放在snort的配置文件中才可以直接调用动作名称使用。

协议类型是构成规则头的第二部分,主要是用来对比数据包的协议类型。

当前,最新版的snort可以支持IP、TCP、UDP和ICMP四种协议类型的数据包检测。

协议部分仅在规则头部起作用,与规则选型无关。

在规则头中,有两个地址部分用来检测数据包的源地址、源端口、目的地址和目的端口。

地址可以是主机地址或者网络地址,也可以用关键字any来代表所有地址或者端口。

采用的无类别域间路由地址,符合当前网络地址的标准形式。

当用户想排除掉某些地址或端口时,可采用非运算符“!

”。

在snort规则方向操作符是一个非常重要的概念,指明了哪一边是源,哪一边是目的。

方向操作符主要有三种:

->表示数据包从左边定义的地址发送给右边定义的地址。

<-表示数据包从右边定义的地址发送给左边定义的地址。

<>表示规则被应用在两个方向。

规则体属于可选内容,主要用来对数据包进行深层次攻击特征检测。

它由多个规则选项组成,每个选项之间使用“;”分开,便于snort区分各个选项。

只有所有规则选项定义的攻击特征被满足时,规则头中定义的规则动作才被使用。

规则选项的关键字有许多,最新的版本中规则选项关键字将近50个。

一些常见snort规则选项关键字如表2-2所示。

表2-2常见选项关键字

选项关键字

含义

sid

规则号

msg

告警信息

ttl

判断IP包的TTL值

classtype

规则类型

2.2iptables简介

2.2.1iptables概述

iptables是一款工作于用户空间的防火墙应用软件,自从Linux2.4发布后,它就已经成为了Linux操作系统自带的防火墙。

经过多年的研究与完善,它已发展成为一款功能强大的流行的防火墙,具备了许多商业防火墙才有的功能。

比如,iptables能够检测数据包的应用层、能够跟踪协议、能够制定过滤规则和访问控制等功能。

基本上所有版本的Linux都预置了iptables。

从工作原理上来看,iptables仅仅是用户和防火墙之间的控制接口,真正的防火墙是Netfilter框架。

Netfilter框架是由RustyRussell提出的Linux内核防火墙框架。

简单的说表由链组成,而链又由规则组成。

Netfilter有Filter表、NAT表、Mangle表和Raw表四个表,一般情况下默认使用Filter表。

而iptables则只是用来管理表、链和规则的工具。

2.2.2iptables工作原理

基于iptables的策略机制,用户可以通过iptables对数据包进行严格地包过滤。

完整的iptables策略是由一组的iptables规则组成,它的主要作用是让Linux内核知道如何处理一些特定的数据包。

规则建立在链中,一个链就是一个完整的规则集。

防火墙通过规则对数据包进行特征比较,然后对数据包做出响应动作[11]。

iptables的工作原理如图2-2所示。

图2-2iptables的工作原理

2.2.3iptables规则

iptables主要是用来增加、删除和修改链,在链中创建、删除和更改过滤规则的管理工具。

它的功能强大,但是用法简单。

常见的iptables命令格式为:

iptables[-t表名]命令选项[链名][条件匹配][-j目标动作或跳转]

“-t表名”是指需要进行操作的表,通常使用Filter表、Nat表、Raw表和Mangle表四个中的一个。

如果该项缺省则系统默认使用Filter表。

Filter表用来保存过滤规则,Nat表用来保存NAT规则,Mangle表用来保存修改分组数据的特定规则,而Raw表用来保存在连接跟踪前处理数据包的规则。

“命令选项”是用来对链或规则进行操作的,常见的命令选项表2-3所示。

表2-3常见的命令选项

选项

含义

-A

向指定链中追加规则

-D

从指定链中删除指定规则

-F

清空指定链中的所有规则

-I

在指定规则前插入规则

-L

显示指定链中的所有规则

-N

建立用户自定义链

-R

替换指定链中某条规则

-X

删除不在使用的用户自定义链

“链”是指要被操作的链名,它分为内置链和自定义链两种。

在Filter表中最重要的内置链是OUTOUT链(输出链)、INPUT链(输入链)和FORWARD链(转发链)。

“条件匹配”指匹配数据包时的规则特征,只有当数据包匹配这些条件时,才可以进行该规则指定的动作。

常见的匹配选项如表2-4所示。

表2-4常见的匹配选项

选项

含义

-s

匹配源IP地址或网络

-d

匹配目标IP地址或网络

-p

匹配协议类型

-i

流入接口

-o

流出接口

“目标动作或跳转”是当数据包的特征匹配规则时触发的动作。

常见的动作如表2-5所示。

表2-5常见的动作

选项

含义

ACCEPT

允许数据包通过

DROP

丢弃数据包,并不对数据包进行进一步处理

LOG

将数据包信息记录到syslog

REJECT

丢弃数据包,同时发送适当的响应报文

RETURN

在调用链中继续处理数据包

2.3入侵检测系统和防火墙的联动

2.3.1联动基本概念

snort和iptables各自都存在一些缺陷,为了解决这些缺陷带来的网络安全问题,联动机制的概念被提出来了。

通过将iptables和snort相互联动,iptables能通过snort及时发现符合规则的入侵行为,snort能够使用iptables对入侵行为进行处理。

基于联动机制实现的简单IPS能够更有效地保障网络安全,进一步提高了防护性能,并且与商业IPS相比较,它大大降低了成本[12]。

2.3.2联动工作原理

数据包进入系统之后,iptables防火墙按照规则对数据包进行特征比较,满足规则的数据包按照规则中的动作进行处理,通过检查的数据包交给snort进行进一步的检测。

如果发现数据包的信息与规则库中规则匹配,则调用联动模块将数据包的源地址加入到iptables的阻止链中并记录信息。

联动的工作原理如图2-3所示。

图2-3联动工作原理

3系统需求分析

3.1业务流程

系统可分概括为两大部分:

系统联动部分和Web管理部分。

联动部分主要是面对snort和iptables,数据包首先通过iptables的初步过滤,判断是否匹配过滤规则。

如果满足iptables规则就对数据包执行该规则定义的规则动作,如果不满足iptables规则就交给snort进行进一步的检测。

snort通过规则库对数据包进行特征匹配,如果特征匹配失败,数据包则通过检测。

如果匹配成功,snort就向报警日志中添加新的报警信息。

当联动模块监测到报警日志有新的报警信息时,就对其进行分析,提取攻击行为的各种信息,并将这些信息插入到数据库中,方便日后取证调查。

然后联动模块会根据攻击行为的信息生成一个规则,并插入到iptables过滤规则库中。

当攻击者再次攻击时,攻击数据包就会被iptables过滤,从而达到保障网络安全的作用。

图3-1为联动部分业务流程图。

Web管理部分主要是面对管理员,管理员登入系统后才可对系统进行操作,支持通过Web页面进行系统的关闭/启动、snort规则查看/删除/添加,iptables规则查看/删除/添加,管理员的基本信息管理等。

所有管理员添加的规则信息和联动模块保存的信息都保存在数据库中,可以说数据库就是联动模块和Web管理模块之间的接口。

图3-2为Web管理部分业务流程图。

图3-1联动部分业务流程图

图3-2Web管理部分业务流程图

3.2可行性分析

为了确保本系统的可行性,本文对以下三个方面进行了分析:

技术可行性

本系统核心代码采用Java语言编写,数据库使用MySQL,前台界面使用JSP。

这些都是广泛使用的技术和软件,据有较好的跨平台性和可靠性。

经济可行性

联动使用的入侵检测系统是轻量级的snort,防火墙采用Ubuntu自带iptables防火墙。

snort和iptables都是开源的免费的,但是它们却具备商业安全软件才具备大部分功能,这样很大程度的降低了系统的开发成本。

操作可行性

系统使用的联动软件都是占用系统资源较少的,一般的PC机就可以当做运行平台,不需要购买专用服务器。

4总体设计

4.1系统结构设计

本系统主要分为以下几个模块:

管理员登入、管理员信息管理、联动响应模块、攻击统计图、邮件通知、系统启动和关闭、事件查看、snort规则管理、iptables规则管理。

管理员登入

用户必须登入后才能对系统进行操作,并且系统会记录下管理员的登入时间。

管理员信息管理

初级网络工程师和中级网络工程师级别的管理员只能对自己的基本信息进行修改,高级网络工程师级别的管理员能够修改所有管理员的信息,也能添加新的管理员或删除已有的管理员。

联动响应模块

该模块实时的监测snort的告警日志,如果有新的攻击发生,就会在数据库中记录,并生成规则,调用iptables阻断攻击。

被阻断的攻击源地址直到管理员手动解闭后才能正常与本机通信。

攻击统计图生成

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2