基于snort和iptables的简单ips系统的设计与实现(编辑修改稿)内容摘要:
市场需求和应用价值 ,然后 对系统的开发进行了 业务流程分析和可行性分析。 第四 部分 首先对 系统每个 模块 进行了设计 和 功能 介绍 ,然后对数据库进行了 概念设计和逻辑设计。 第五 部分 介绍了系统主要 功能模块的关键代码,并展示了运行 界面。 第六 部分 介绍 了测 试 使用 的 攻击手段,并展示了测滁州学院本科毕业设计 4 试的结果。 最后是结束语 , 对系统进行了简单的介绍和概括。 2 相关技术和理论基础 snort 简介 snort 概述 snort 是一款轻量级 网络入侵检测系统( Network Intrusion Detection System, NIDS)。 它是 以 Sniffer为 基础 , 通过 不断 地 重写 代码,改进 功能,才成为了一款流行的 NIDS。 本质上 snort 是 一款 网络数据包嗅探器,但是它的创新 性 在于 使用规则来 检测 数据包。 snort 的检测 是基于规则 库 的 , 所有 snort规则 都 被 保存 在文本 文件中,并按照 攻击类型保存 为不同 名称的文件 ,这些文件构成了规则库。 snort在启动时通过配置文件来读取规则检测数据包以发现入侵事件,并进行处理,可供选择的方式有:忽略、记录或报警。 snort 有诸多优点: ⑴ 支持多种硬件平台 和所有的操作系统平台,用户可自行选择。 ⑵ 采用模块化结构 , 具有较强的可扩展性 , 对于新的攻击手段 , 只需简单的添加新的规则就可以检测到。 ⑶ 规则存储在文本文件中 , 方便用户改写规则。 用户可以添加自己 的规则 ,也可以 删除规则库中的规则。 ⑷ snort 是开源的、免费的软件。 snort 也有一些缺点: ⑴ snort 的正确安装非常困难,各个组件相互协调才能保证系统稳定的运行。 ⑵ snort 依赖的 Libpcap 自身存在缺陷,流量超过百兆就导致系统奔溃。 ⑶ 容易产生误报警 , 对于合法流量只要匹配规则就会报警。 ⑷ 文本形式的规则反而加大了用户的配置难度 ,对于新手 很难真确配置。 snort 工作原理 snort 的模块化结构,使得系统具有较好的可扩展型。 它 是 由 下列几个 部分组成 :包解码器、 检测引擎及插件 、 预处理器插件 和 报警输出模块 等。 各个模块相互合作 , 当 检测 到 snort 规则库中已定义的 的攻击 特征时 , 产生指定形式的报警信息 [10]。 snort 的工作原理如图 21 所示。 因 特 网 包 解 码 器预 处 理 器插 件检 测 引 擎丢弃日 志 和 报 警系 统输 出 模 块输出警告或记录文件数 据 包捕 获解 码预 处理检 测 图 21 snort 工作原理 滁州学院本科毕业设计 5 snort 的运行 是基于插件 的 , 所有的 插件 都是 依据 snort 官方 提供的函数接口 开发的。 用户 自由安装 功能 插件 , 也可以自己开发出适合自己的插件, 这使得 功能扩展更 加 简单。 snort 规则 snort 作为一 款 流行 的 NIDS,它出类拔萃之处在于它的规则 文件 被设计成可编辑的文本文件。 完整的 snort 规则 应该 由两部分构成: 括号前 面 的 规则头和 括号里 面 的 规则体。 比如 alert tcp any any any any (flags: A。 ack: 0。 msg: “NMAP TCP ping”。 )就是个典型的规则。 规则头是 规则不可或缺的一部分 , 规则头可以定义攻击的一些简单特征,比如源地址、目的地址、 源端口、目的端口、协议类型等基本信息,并且它定义了对于入侵事件 snort 应该采取哪种规则动作。 概括起来规则头可以分为 7 个部分:规则动作、协议 类型 、源地址 、源 端口 、 目的地址 、目的 端口 和方向操作符。 规则动作 是构成规则头的第一个部分 ,它 告诉 snort 当检测到入侵时,探测引擎将会采取什么样的 响应。 Snort 规则动作可分为预置规则动作和自定义规则动作。 5 种预置的动作如表 21 所示: 表 21 snort 预置规则动作 规则动作 含义 alert 应用默认机制产生告警,以及做相应记录 log 对包应用规定机制进行 记录 pass 忽略这个数据包 activate 先告警,接着 activate 一个不同的 dynamic dynamic 待一条规则激活,接着记录日志 自定义规则 动作 可以 使用 以下通用结构来定义: ruletype 动作名称 { Action definition } 自定义动作定义是在大括号内完成,动作名称的则 是 在大括号外的 ruletype 关键字之后。 规则动作定义完成之后,必须放在 snort 的配置文件中才可以直接调用动作名称使用。 协议 类型 是 构成规则头 的第二部分, 主要是用来对比数据包的协议类型。 当前 , 最新版的 snort可以 支持 IP、 TCP、 UDP 和 ICMP 四种协议 类型的数据包检测。 协议部分仅在规则头部起作用,与规则选型无关。 在 规则头中 ,有两个 地址部分用来 检测数据包的源 地址、源端口、目的地址和目的端口。 地址可以是主机地址或者网络地址,也可以用关键字 any 来代表所有地址或者端口。 采用的无类别域间路由地址,符合当前网络地址的标准形式。 当用户想排除掉某些地址或端口时,可采用非运算符“。 ”。 在 snort 规则方向操作符是一个非常重要的概念,指明了哪一边是源,哪一边是目的。 方向操作滁州学院本科毕业设计 6 符主要有三种: ⑴ 表示数据包从左边定义的地址发送给右边定义的地址。 ⑵ 表示数据包从右边定义的地址发送给左边定义的地址。 ⑶ 表示规则被应用在两个方向。 规则体属于可选内容, 主要用来对数据包进行深层次 攻击特征 检测。 它 由多个 规则 选项 组成 ,每个 选项之间 使用 “;” 分开,便于 snort 区分 各个 选项。 只有所有规则选项定义的攻击特征被满足时 , 规则头中定义的 规则动作才被 使用。 规则选项的关键字有许多,最新的版本中规则选项关键字将近 50 个。 一些常见 snort 规则选项 关键字 如表 22 所示。 表 22 常见选项关键字 选项关键字 含义 sid 规则号 msg 告警信息 ttl 判断 IP 包的 TTL 值 classtype 规则类型 iptables 简介 iptables 概述 iptables 是 一款 工作于用户空间的防火墙应用软件 ,自从 Linux 发布后,它就 已经 成为了 Linux操作系统 自带的防火墙。 经过多年的研究与完善,它已发展 成 为一款功能强大的流行的防火墙, 具备 了 许多商业防火墙才有的功能。 比如, iptables 能够检测 数据 包的应用层、 能够 跟踪协议 、 能够 制定 过滤 规则 和 访问控制 等功能。 基本上 所有 版本 的 Linux 都 预置了 iptables。 从工作原理上来 看 , iptables 仅仅是 用户 和 防火墙 之间 的 控制 接口, 真正 的 防火墙 是 Netfilter 框架。 Netfilter 框架 是由 Rusty Russell 提出的 Linux 内核 防火墙 框架。 简单的说表由链组成,而链又由规则组成。 Netfilter 有 Filter 表、 NAT 表、 Mangle 表和 Raw 表四个表 , 一般情况下默认使用 Filter表。 而 iptables 则 只是 用来管理 表、 链和规则的工具。 iptables 工作原理 基于 iptables 的 策略 机制, 用户可以通过 iptables 对数据包进行严格 地 包 过滤。 完整的 iptables策略是由 一组 的 iptables 规则 组成 , 它的主要作用是让 Linux 内核知道如何处理 一些特定的 数据包。 规则建立 在链中,一个链就是一个完整的规则集。 防火墙通过规则对数据包进行特征比较,然后对数据包做出响应动作 [11]。 iptables 的工作原理 如图 22 所示。 滁州学院本科毕业设计 7 本 地 套 接 字f i l t e r O U T P U Tf i l t e r I N P U Tf i l t e r F O R W A R D路 由 决策n a t P O S T R O U T I N G流 出数 据包用 户内 核n a t P R E R O U T I N G流 入数 据包 图 22 iptables 的 工作原理 iptables 规则 iptables 主要 是 用来 增加 、删除和 修改 链,在链中创建、删除和更改 过滤 规则 的管理工具。 它的功能强大,但是用法简单。 常见的 iptables 命令格式为: iptables [ t 表名 ] 命令选项 [链名 ] [条件匹配 ] [j 目标动作或跳转 ] “ t 表名”是指需要进行操作的表,通常 使用 Filter 表 、 Nat 表 、 Raw 表 和 Mangle 表四个 中的一个。 如果 该项 缺省则 系统 默认 使用 Filter 表。 Filter 表 用来 保存 过滤规则, Nat 表 用来 保存 NAT 规则, Mangle 表 用来 保存 修改分组数据的特定规则,而 Raw 表 用来 保存 在连接跟踪前处理数据包 的规则。 “ 命令选项 ” 是用来对链或规则进行操作的,常见的命令选项表 23 所示。 表 23 常见的命令选项 选项 含义 A 向指定链中追加规则 D 从指定链中删除指定规则 F 清空指定链 中的所有规则 I 在指定规则前插入规则 L 显示指定链中的所有规则 N 建立用户自定义链 R 替换指定链中某条规则 X 删除不在使用的用户自定义链 “ 链 ” 是指 要 被 操作的链名 , 它分为内置链和自定义链 两种。 在 Filter 表 中 最重要的内置链是OUTOUT 链 (输出链) 、 INPUT 链 (输入链) 和 FORWARD 链 (转发链)。 “ 条件匹配 ”指匹配数据包时的规则特征,只有当数据包匹配这些条件时,才可以进行该规则指定的动作。 常见的匹配选项如表 24 所示。 滁州学院本科毕业设计 8 表 24 常见的 匹配 选项 选项 含义 s 匹 配源 IP 地址或网络 d 匹配 目标 IP 地址或网络 p 匹配 协议类型 i 流入接口 o 流出 接口 “ 目标动作或跳转 ”是 当数据包的特征匹配规则时 触发的动作。 常见的 动作 如表 25 所示。 表 25 常见的 动作 选项 含义 ACCEPT 允许数据包通过 DROP 丢弃数据包,并不对数据包进行进一步处理 LOG 将数据包信息记录到 syslog REJECT 丢弃数据包,同时发送适当的响应报文 RETURN 在调用链中继续处理数据包 入侵检测系统和防火墙的 联动 联动基本 概念 snort 和 iptables 各自都存在 一些缺陷 ,为了 解决 这些 缺陷 带来的 网络安全 问题,联动机制 的概念 被提出来了。 通过将 iptables 和 snort 相互 联动, iptables 能通过 snort 及时发现符合规则的入侵行为, snort 能够使用 iptables 对入侵行为进行处理。 基于 联动 机制 实现 的简单 IPS 能够更有效地保障网络安全 ,进一步提高了防护性能 ,并且 与商业 IPS 相比较, 它 大大降低了成本 [12]。 联动工作原理 数据包进入系统之后, iptables 防火墙按照规则对数据包进行特征比较,满足规则的 数据包按照规则中的动作进行处理,通过检查的数据包交给 snort 进行进一步的检测。 如果发现数据包的信息与规则库中规则匹配,则调用 联动 模块将数据包的源地址加入到 iptables 的阻止链中并记录 信息。 联动的工作原理如图 23 所示。 因 特 网N e t f i l t e r /i p t a b l e sS n o r t联 动 模块丢 弃捕 获通过告 警添 加 规 则添 加 规 则应 用 程 序通过 图 23 联动 工作 原理 滁州学院本科毕业设计 9 3 系统需求分析 业务流程 系统可分概括为两大部分:系统联动部分和 Web 管理部分。 联动部分主要是面对 snort 和 iptables,数据包首先通过 iptables 的初步过滤,判断是否匹配过滤规则。 如 果满足 iptables 规则就对数据包执行 该 规则定义的 规则 动作,如果不满足 iptables 规则就交给 snort 进行进一步的检测。 snort 通过规则库对数据包进行特征匹配,如果 特征 匹配失败,数据包则。基于snort和iptables的简单ips系统的设计与实现(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。