收藏 分享(赏)

基于snort和iptables的简单ips系统的设计与实现.doc

上传人:无敌 文档编号:635946 上传时间:2018-04-16 格式:DOC 页数:47 大小:2.72MB
下载 相关 举报
基于snort和iptables的简单ips系统的设计与实现.doc_第1页
第1页 / 共47页
基于snort和iptables的简单ips系统的设计与实现.doc_第2页
第2页 / 共47页
基于snort和iptables的简单ips系统的设计与实现.doc_第3页
第3页 / 共47页
基于snort和iptables的简单ips系统的设计与实现.doc_第4页
第4页 / 共47页
基于snort和iptables的简单ips系统的设计与实现.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、本 科 生 毕 业 设 计(申请学士学位)论 文 题 目 基于 snort 和 iptables 的简单 IPS 系统的设计与实现 作 者 姓 名 周伟伟 所 学 专 业 名 称 网络工程 指 导 教 师 戴支祥 2014 年 5 月 25 日学 生: (签字)学 号:2010211262答 辩 日 期:2014 年 6 月 14 日指 导 教 师: (签字)目 录摘要 .1Abstract.11 绪论 .21.1 研究现 状 .21.2 系统设计的主要意义 .31.3 文章结构 .32 相关技术和理论基础 .42.1 snort 简介 .42.1.1 snort 概述 .42.1.2 sno

2、rt 工作原理 .42.1.3 snort 规则 .52.2 iptables 简介 .62.2.1 iptables 概述 .62.2.2 iptables 工作原理 .62.2.3 iptables 规则 .72.3 入侵检测系统和防火墙的联动 .82.3.1 联动基本概念 .82.3.2 联动工作原理 .83 系统需求分析 .93.1 业务流程 .93.2 可行性分析 .104 总体设计 .114.1 系统结构设计 .114.2 数据库设计 .124.2.1 概念设计 .124.2.2 逻辑设计 .145 系统实现 .165.1 系统开发环境 .165.2 系统主页面 .165.3 管理

3、员登入模块 .175.4 管理员信息管理模块 .205.4 联动响应模块 .245.5 攻击统计图模块 .255.6 邮件通知模块 .275.7 系统启动关闭模块 .285.7 事件查看模块 .305.8 snort 规则管理模块 .315.9 iptables 规则管理模块 .356 系统测试 .376.1 系统测试的方法 .376.2 测试环境 .376.3 管理模块测试 .376.3.1 snort 规则管理模块测试 .376.3.2 iptables 规则管理模块测试 .396.4 联动模块测试 .396.4.1 防御 ping 攻击测试 .396.4.2 防御 Nmap 扫描测试 .

4、406.5 攻击查看测试 .40结束语 .40参考文献 .41致 谢 .42滁州学院本科毕业设计- 1 -基于 snort 和 iptables 的简单 IPS 系统的设计与实现摘要:面对日益严峻的网络安全形势,传统的网络安全技术显得力不从心。针对入侵检测系统(Intrusion Detection System, IDS)和传统防火墙的缺陷,本文设计并实现了一个 Ubuntu 系统下将传统防火墙 iptables 和入侵检测系统 snort 相互联动的简单 IPS 系统。运用 snort 记录攻击事件,采用Java 编写了实时监控程序,实时监测 snort 报警日志,如果监测到攻击事件,系统

5、动态生成规则,应用 iptables 实时阻断攻击。该系统使用 Browser/Server 模式,管理员登录系统后才可以进行远程操作,支持通过 Web 页面关闭/启动系统,插入/ 删除/查看 iptables 规则,插入/ 删除/查看 snort 规则,管理管理员的基本信息等。管理员配置的所有规则都通过 MySQL 数据库进行保存,所有的攻击事件和 iptables 防火墙的响应事件也保存在数据库中,方便管理员日后进行查找和分析。同时搭建了一个测试平台来测试系统的可靠性。关键词:iptables;snort;Browser/Server;联动Design and Implementation

6、 of Simple IPS System Based on snort and iptables Abstract: Facing the increasingly serious situation of network security,the traditional network security technology is insufficient. Aiming at the shortage of traditional firewall and intrusion detection system, this article designs an Intrusion Prev

7、ent System (IPS) to link intrusion detection system snort and the firewall iptables under Ubuntu. IPS uses the snort recording attacks, runs a program written in Java to monitor snorts alarm log. If IPS detects an intrusion, it can dynamically generate rules and call iptables blocking attacks in tim

8、e. The system adopts Browser/Server mode, admintors can remotely operate system after logging in system. All of these functions are supported through web pages, such as shut down / startup, inserting/deleting/viewing rules of snort and iptables, managing the basic information of administrators and s

9、o on. All the rules,attacks and responds are stored in the MySQL database in order to facilitate the administrator to search and analysis. At the same time, a platform for testing purpose is built .Key words : iptables; snort; Browser/Server; cooperation滁州学院本科毕业设计- 2 -1 绪论1.1 研究现状随着 Internet 的快速发展,诸

10、如电子商务、电子化办公等已经或正在成为现代生活的重要组成部分。但是 Internet 让工作及生活变的越来越方便的同时,也使得网络安全风险不断增加。我们必须面对和解决网络安全隐患。2013 年的“斯诺登事件” ,就是一个典型的网络安全事件。网络安全的重要性不言而喻。为了解决日益严重的网络安全隐含,许多网络安全技术被推出,防火墙和入侵检测系统就是其中两种比较成熟的技术。防火墙是一个成熟的网络安全技术,主要作用是访问控制和身份认证,它是保障网络安全的的第一道安全门,但是防火墙自身也存在着一些缺陷。首先,它是一种静态的网络安全技术,因为它的安全策略需要事先设计好。其次,防火墙无法拦截所有类型的攻击,

11、比如一些协议漏洞发起的攻击和来自网络内部的攻击。基于以上问题,为了保障网络的安全就需要网络管理员实时查看网络的状态,及时发现攻击,并对攻击进行分析重新制定安全策略。导致了大量的人力浪费在重复的劳动上 1。入侵检测系统是保障网络安全的第二道安全门,它是一种被动型的网络安全技术,主要是用来监听网络运行状态,并判断是否有入侵行为发生,并记录入侵行为的基本信息。但是相对防火墙来说,IDS 缺少阻断攻击的能力。随着网络安全形势的日益严峻,单纯的防火墙和入侵检测系统都不能有效保障网络安全。真正的纵深防御技术应该不仅能够发现攻击事件,而且能够及时地、主动地阻止攻击,防止攻击对用户造成危害。正是基于这种思想,

12、一种新的网络安全技术入侵防御系统(Intrusion Prevention System, IPS)被研究出来。2002 年一些国际网络安全组织首次提出入侵防御系统的概念,并随着网络安全问题的日益突出,越来越多的人开始关注 IPS。IPS 在随后的几年里得到了快速发展。 2003 年 6 月 Gartner 公司副总裁 Richard Stiennon 在其发表的著名的题为Intrusion Detection Is Dead-Long Live Intrusion Prevention的研究报告中提出: IDS 不但不能给网络带来安全性,反而会增加网络管理员的困扰,建议用户使用 IPS 来代

13、替 IDS2。经过多年研究,国外一些公司推出了各自的 IPS 产品,比如 CISOC 公司的 IPS 4300/4500 系列、Juniper 公司的 Juniper Networks,Symantec 公司的 ManHunt 和 Intruder Alert、TopLayer 公司的 ips 5500、McAfee 的 IntruShield 系列和 Entercept 系列、NetScreen 的 IDP 系列等 3。相比较国外,国内对于 IPS 的研究起步较晚,直到 2004 年方正科技公司才推出了方正方通入侵防御系统 4。 2005 年 9 月 15 日,绿盟科技也推出自己的入侵防御系

14、统 ICEYE NIPS5。不久后,北京启明星辰信息技术有限公司推出了其自主研发的天清系列入侵防御系统,比如天清入侵防御系统 NIPS8606。华为公司在 2013 安捷信合作伙伴大会上推出了一款功能强大的入侵检测系统NIP5000 入侵防御系统,并在同年 5 月份发布了一款世界领先的万兆级入侵防御系统 NIP55007。IPS 已经逐渐成为网络安全市场的主流产品,并且还在继续研发并完善中。滁州学院本科毕业设计- 3 -1.2 系统设计的主要意义防火墙是一种基于规则库在外部网络和内部网络之间实行访问控制的系统。逻辑上,防火墙是由限制器和分离器组成;实际中,防火墙一般是由一些硬件设备和软件设备组

15、成。它按照预制的规则和配置,检测然后过滤网络流量,从而保护网络安全。但是它的缺点也很明显:防火墙的规则是固定的,不能依据网络运行情况进行动态调整,也不能记录攻击行为用于事后分析和取证等 8。总之,防火墙存在以下几个问题:防火墙的规则编写较难。编写过于严格,网络的正常运行则会受到影响;编写过于宽松,网络安全则难以保障。 防火墙是一种静态的技术,它不能动态地处理入侵事件。 防火墙无法阻止不经过它的入侵。比如来自内网的入侵等。 防火墙无法阻止一些基于协议的入侵。比如针对 Web、FTP 等协议的攻击。入侵检测系统是指可以通过规则库检测入侵行为,并对被检测出的入侵行为做出正确响应的系统。根据其工作原理

16、的不同,可分为主机型、网络型和分布式型三种。入侵检测系统虽然能够实时的检测网络安全状态,但是它也有一些缺点: 无法检测非面向连接的攻击。 无法检测拒绝服务攻击。 入侵检测的可靠性不高。 当有针对系统本身的攻击时,会影响系统正常运行。防火墙和入侵检测系统在实际网络环境中都有一些不足之处,因此将二者相互联动,组建 IPS系统可以取长补短,更好的保护网络安全。相比较于传统防火墙和入侵检测系统,入侵防御系统是一种主动的、积极的网络安全技术 9。但是商业 IPS 的价格高昂,许多中小型企业不具备购买能力。因此,本设计选用开源的 snort 和Ubuntu 操作系统自带的 iptables 相互联动来实现

17、简单的 IPS 系统。开源软件的免费特性使得企业无需考虑系统部署成本,开放性使得企业不用担心被一家或某几家商业软件绑架,丰富的技术参考资料和大量已有的部署案例为成功进行系统部署提供了技术参考和保障。同时本设计的开发模式使用B/S 模式,前台 Web 界面提供用户管理 IPS 的功能,后台采用 JAVA 监控 snort 报警日志并将攻击方添加到 iptables 阻止规则链中。1.3 文章结构本设计共分为六部分。第一部分剖析了本设计的研究背景和研究意义,并且简单介绍了 IPS 的国内外研究现状和主要产品。第二部分介绍了 snort 和 iptables 规则的构成以及各自的工作原理。同时也分析

18、了 snort 和 iptables 的优缺点,并描述了 IPS 的工作原理及特征。第三部分分析了本系统的市场需求和应用价值,然后对系统的开发进行了业务流程分析和可行性分析。第四部分首先对系统每个模块进行了设计和功能介绍,然后对数据库进行了概念设计和逻辑设计。第五部分介绍了系统主要功能模块的关键代码,并展示了运行界面。第六部分介绍了测试使用的攻击手段,并展示了测滁州学院本科毕业设计- 4 -试的结果。最后是结束语,对系统进行了简单的介绍和概括。2 相关技术和理论基础2.1 snort 简介2.1.1 snort 概述snort 是一款轻量级网络入侵检测系统(Network Intrusion

19、Detection System,NIDS ) 。它是以Sniffer 为基础,通过不断地重写代码,改进功能,才成为了一款流行的 NIDS。本质上 snort 是一款网络数据包嗅探器,但是它的创新性在于使用规则来检测数据包。snort 的检测是基于规则库的,所有 snort 规则都被保存在文本文件中,并按照攻击类型保存为不同名称的文件,这些文件构成了规则库。snort 在启动时通过配置文件来读取规则检测数据包以发现入侵事件,并进行处理,可供选择的方式有:忽略、记录或报警。snort 有诸多优点: 支持多种硬件平台和所有的操作系统平台,用户可自行选择。 采用模块化结构,具有较强的可扩展性,对于新

20、的攻击手段,只需简单的添加新的规则就可以检测到。 规则存储在文本文件中,方便用户改写规则。用户可以添加自己的规则,也可以删除规则库中的规则。 snort 是开源的、免费的软件。snort 也有一些缺点: snort 的正确安装非常困难,各个组件相互协调才能保证系统稳定的运行。 snort 依赖的 Libpcap 自身存在缺陷,流量超过百兆就导致系统奔溃。 容易产生误报警,对于合法流量只要匹配规则就会报警。 文本形式的规则反而加大了用户的配置难度,对于新手很难真确配置。2.1.2 snort 工作原理snort 的模块化结构,使得系统具有较好的可扩展型。它是由下列几个部分组成:包解码器、检测引擎

21、及插件、预处理器插件和报警输出模块等。各个模块相互合作,当检测到 snort 规则库中已定义的的攻击特征时,产生指定形式的报警信息 10。snort 的工作原理如图 2-1 所示。因特网 包解码器预处理器插件检测引擎丢弃日志和报警系统输出模块输出警告或记录文件数据包捕获解码预处理检测滁州学院本科毕业设计- 5 -图 2-1 snort 工作原理snort 的运行是基于插件的,所有的插件都是依据 snort 官方提供的函数接口开发的。用户自由安装功能插件,也可以自己开发出适合自己的插件,这使得功能扩展更加简单。2.1.3 snort 规则snort 作为一款流行的 NIDS,它出类拔萃之处在于它

22、的规则文件被设计成可编辑的文本文件。完整的 snort 规则应该由两部分构成:括号前面的规则头和括号里面的规则体。比如 alert tcp any any - any any (flags: A; ack: 0; msg: “NMAP TCP ping”;)就是个典型的规则。规则头是规则不可或缺的一部分,规则头可以定义攻击的一些简单特征,比如源地址、目的地址、源端口、目的端口、协议类型等基本信息,并且它定义了对于入侵事件 snort 应该采取哪种规则动作。概括起来规则头可以分为 7 个部分:规则动作、协议类型、源地址、源端口、目的地址、目的端口和方向操作符。规则动作是构成规则头的第一个部分,它

23、告诉 snort 当检测到入侵时,探测引擎将会采取什么样的响应。Snort 规则动作可分为预置规则动作和自定义规则动作。5 种预置的动作如表 2-1 所示:表 2-1 snort 预置规则动作规则动作 含义alert 应用默认机制产生告警,以及做相应记录log 对包应用规定机制进行记录pass 忽略这个数据包activate 先告警,接着 activate 一个不同的 dynamicdynamic 待一条规则激活,接着记录日志自定义规则动作可以使用以下通用结构来定义:ruletype 动作名称Action definition自定义动作定义是在大括号内完成,动作名称的则是在大括号外的 ruletype 关键字之后。规则动作定义完成之后,必须放在 snort 的配置文件中才可以直接调用动作名称使用。协议类型是构成规则头的第二部分,主要是用来对比数据包的协议类型。当前,最新版的snort 可以支持 IP、TCP、UDP 和 ICMP 四种协议类型的数据包检测。协议部分仅在规则头部起作用,与规则选型无关。在规则头中,有两个地址部分用来检测数据包的源地址、源端口、目的地址和目的端口。地址可以是主机地址或者网络地址,也可以用关键字 any 来代表所有地址或者端口。采用的无类别域间

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

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报