Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

snort入侵检测系统优化配置

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

本文比较深入地讨论了snort入侵检测系统(Intrusion Dection System)的体系结构和配置,我针对构建基于snort的入侵检测系统对原文作了一些改动,希望对你部署自己的snort入侵检测系统能够有所帮助:)。

简介

伴随者Internet爆炸式的发展,需要重新审视网络安全问题。防火墙作为一种解决方案得到了广泛的应用。然而这还不够,你还需要入侵检测系统的保护。

本文将讨论综合讨论当前入侵检测系统的不同体系结构。并且会重点介绍开放源码的入侵检测系统的一个安全框架以及配置。

1.使用入侵检测系统的理由

你可能会对是否需要使用入侵检测系统还有疑问,下面是使用IDS的理由,不过还需要你自己决定。:

  • 网络庞大而复杂,并且难以监视。IDS的记录能够帮助你找出网络中潜在的安全问题。
  • IDS具有检验防火墙配置的能力。
  • 事故发生后,通过IDS的事件记录可能会有助于追踪攻击者。
  • 通过对IDS的智能化配置,你能够通过重新构造事故链,实现对异常现象的跟踪。
  • 和防火墙不同,IDS是一种被动的保护系统,不会影响网络的数据传输。因而,大多数攻击或者企图绕过系统的攻击者无法察觉入侵检测节点的存在,你可以把这些信息不断地记录到日志中。

3.snort简介

snort是Martin Roesch等人开发的一个IDS工具,基于libpcap库。Martin Roesch本人把snort定位为一个轻量级的入侵检测系统,具有跨平台特征,并且易于配置。然而,它的易于配置特性却值得商榷,因为在1.7版中,它的配置文件语法解析有点问题。不过,在1.8版中,有了很大改进,并加入了一些新的特征。

本文不可能提供一个snort的完整参考,你可以从snort的官方站点http://www.snort.org获得需要的文档。本文将重点介绍snort-1.8的配置。

下图表示snort IDS的基本工作,下一节我将对各曾做详细介绍。

图-1.基本的snort IDS

基本的snort

4.snort应用示例

在这一节我将一步步地讨论snort的设置。首先,我们假想一个非常简单的网络拓扑结构:

简单网络拓扑

注意:在这里我只安排了一个IDS传感器,这个IDS传感器有两个接口,不属于任何网段。人们经常在intranet和Internet之间插入一个IDS传感器,从而绕过防火墙,这是非常危险的,因为虽然有包过滤器,你的网络却有暴露到Internet的危险。IDS专家会告诉你在每个子网都安装IDS传感器。即使有防火墙,你也必须加强IDS的安全,防火墙不能保护你的IDS。在部署IDS时,需要坚持以下原则:

  • 不能在入侵检测系统中运行daemon程序。
  • 不能为接口分配IP地址,ifconfig eth0 up就足够了。
  • 尽量使用单向以太网线缆。你需要自己制作这种线缆。不过,做这种线缆非常困难,可以参考Robert Graham写的sniffing FAQ
  • 尽量取消网络驱动器发送的以太网控制帧(LLC 802.3)。不过,一些网卡不允许这么做。可以参考Ethernet-HOWTO获得不同网卡设置程序的地址,

你可能已经猜到了,snort发布包中的默认配置文件并非优化配置。因此,你需要根据自己的情况进行调节。我们开发了一个snort的配置方案。使用这个方案,只要略施小计,我们就可以处理大型的网络并且减少误否认(false negative)或者误确认(false positive)。使用这个配置,我们最后还能够校验防火墙和包过滤器的配置。

我们从定义一个你的防火墙配置的所谓port matrix开始,它能够帮助你配置入侵检测系统。这个port matrix如表-1所示:

表-1.Port Matrix

Universe : 0.0.0.0/0 : IDS-if = eth0
intranet : 172.24.0.0/16 : IDS-if = 没有连接
dmz-net : 192.168.1.0/24 : IDS-if = eth1
admin-net : 192.168.2.0/29 : IDS-if = eth2 (只用于管理))
front-zone: 194.245.91.0/24 : IDS-if = eth0
fw-if0 : 194.245.91.1/32 : IDS-if = eth0
默认机制:DENY
    +------------+---------------------+----------+
    | To         | (A)      | (B)      | (C)      |
    | From       | universe | dmz-net  | fw-if0   |
    +------------+----------+----------+----------+
(a) | universe   |          | 80/tcp   |          |
    +------------+----------+----------+----------+
(b) | dmz-net    | 53/udp   | 22/tcp   |          |
    +------------+----------+----------+----------+
(c) | fw-if0     | 80/tcp   | 22/tcp   |          |
    |            | 53/udp   |          |          |
    |            | 22/tcp   |          |          |
    +------------+----------+----------+----------+
eth0: [Aa-Ca] and [Aa-Ac] -> /opt/ids/etc/snort.d/eth0/policyrules/pass.rules
eth0: [Ac-Cc] and [Ca-Cc] -> /opt/ids/etc/snort.d/eth0/policyrules/pass.rules
eth1: [Ab-Cb] and [Ba-Bc] -> /opt/ids/etc/snort.d/eth1/policyrules/pass.rules
eth2: 这是管理网络,不必在这个接口上嗅探。

为了帮助理解,我们举例说明。例如:允许tcp intranet 1024:65535 -> 0.0.0.0/0 80方向的报文通过。确切一点说是:允许tcp fw-if0 1024:65535 -> 0.0.0.0/0 80方向的报文通过。这是因为来自intranet的连接经过IP地址伪装(masquerade)获得了防火墙外部接口的IP地址。此外,,tcp Universe 1024:65535 -> dmz-net 80方向的报文也是允许通过的。

如图2所示,在我们的网络上,有一个IDS记录网络数据。以后,我将深入解释这种部署的隐患和问题。现在,我们来看入侵检测系统的配置。为此,我编写了一个脚本,它可以很好地帮助你做一些准备工作。当然,你可以选择自己的配置。

列表-1.预处理脚本

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:SNORT FAQ v1.7.5(1)   下一篇:PAM认证模块使用实例

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号