当前位置:eNet硅谷动力 > 网络安全频道 > NIDS
免费NIDS的构建与应用
2004-07-23 15:44 来源:enet论坛 [收藏到E起摘]

一般说来,一个典型的网络攻击是以大量的端口扫描等手段获取所攻击对象的信息的,这个过程必然产生大量异常的网络流量,它预示着即将到来的真正攻击。这就要求网管人员对网络运行状态进行实时监控,以便随时发现可能的入侵行为,并进行具体分析,及时、主动地进行干预,从而取得防患于未然的效果。完成这种功能的安全产品之一是网络入侵检测系统(Network Intrusion Detection Systems,NIDS)。

目前,NIDS产品可分为硬件和软件两种类型,但无论选择哪种,都有一个共同的特点: 昂贵。即便在单点安装的情况下,无论是硬件类型的费用,还是软件类型的许可费,动辄数万元乃至十余万元。相对于规模不是很大、费用支出有限的企业,承受起来勉为其难。是不是安全防御可以不搞了?答案是否定的。

事实上,互联网在给我们带来挑战的同时,也给我们带来无数的宝贵资源,只等我们去开发、利用。开放源代码软件(Open Source Software)便是其中之一。本文试图从这一角度,讲述利用互联网上免费的开放源代码软件实现构建完整NIDS的过程。

一、系统概述

本处描述的NIDS采用三层分布式体系结构,它包括网络入侵探测器、入侵事件数据库和基于Web的分析控制台。为了避免不必要的网络流量,本例将网络入侵探测器和入侵事件数据库整合在一台主机中,利用标准浏览器,异地访问主机上的Web服务器,并把它作为分析控制台,两者之间的通信采用HTTPS安全加密协议传输。

由于实现本系统所需的软件较多,笔者在此做一简要说明(见附表)。

上述软件都是开放软件,用户可以直接登录相应软件的正式网站下载源代码。

附表
软件名称 功能简述 正式网址 软件版本
Snort 网络入侵探测器 www.snort.org/ 1.8.6
Libpcap Snort所依赖的网络抓包库 www.tcpdump.org/ 0.7.1
MySQL 入侵事件数据库 www.mysql.org/ 3.23.49
Apache Web服务器 www.apache.org/ 1.3.24
Mod_ssl 为Apache提供SSL加密功能的模块 www.modssl.org/ 2.8.8
OpenSSL 开放源代码的SSL加密库,为mod_ssl所依赖 www.openssl.org/ 0.9.6d
MM 为Apache的模块提供共享内存服务 www.engelschall.com/ 1.1.3
ACID 基于Web的入侵事件数据库分析控制台 www.cert.org/kb/aircert/ 0.9.6b21
PHP ACID的实现语言 www.php.net/ 4.0.6
GD 被PHP用来即时生成PNG和JPG图像的库 www.boutell.com/gd/ 1.8.4
ADODB 为ACID提供便捷的数据库接口 php.weblogs.com/ADODB 2.00
PHPlot ACID所依赖的制图库 www.phplot.com/ 4.4.6

需要特别说明的是,虽然本例中构建NIDS所采用的系统平台基于Solaris 8 for Intel Platform,但由于在其他种类的系统平台上(如Linux、OpenBSD以及Windows 2000等)构建NIDS的步骤大同小异,用户仍可学有所用。

二、安装与配置

在正式进行软件安装之前,请检查系统,确保拥有符合ANSI标准的C/C++编译器等软件开发工具。

1.安装入侵事件数据库MySQL

首先,以超级用户的身份登录系统,创建MySQL 用户和MySQL用户组; 然后,以MySQL身份登录,按照缺省配置将MySQL安装在/usr/local目录下;接下来,将源代码树中的缺省配置文件My.cnf拷贝到/etc目录下;再用超级用户身份执行源码树中Scripts目录下的可执行脚本文件Mysql_install_db创建初始数据库; 随后,用/etc/init.d/mysql.server命令启动数据库服务器,使用/usr/local/bin/mysqladmin程序改变数据库管理员的口令。

2.安装Snort

首先安装Snort所依赖的网络抓包库Libpcap,将其按照缺省配置安装在/usr/local目录下之后,开始正式安装Snort。

	#gzip -d -c snort-1.8.6.tar.gz   tar xvf -
	#cd snort-1.8.6
	#./configure --prefix=/usr/local --with-mysql=/usr/local 
	--with-libpcap-includes=/usr/local \
	--with-libpcap-libraries=/usr/local
	#make
	#make install
安装完毕后,将源码树中的Snort.conf文件、Classification.config文件和规则文件(*.rules)拷贝到系统的/etc目录下。

按照下列步骤配置Snort,以便将其捕获的网络信息输出到MySQL数据库。

(1)创建Snort入侵事件数据库和存档数据库。

#/usr/local/bin/mysqladmin -u root -p create snort

#/usr/local/bin/mysqladmin -u root -p create snort_archive

(2)执行Snort源码树下Contrib目录下的Create_mysql SQL脚本文件,创建相关表。

#/usr/local/bin/mysql -u root -D snort -p < create_mysql

#/usr/local/bin/mysql -u root -D snort_archive -p < create_mysql

(3)编辑/etc/snort.conf文件,在Output Plugin 段中加入如下一行:

output database: alert, mysql, user=root password=abc123 dbname=snort host=localhost

3.安装Web服务器Apache

(1)安装MM库

按照缺省配置将MM库安装在/usr/local目录下。

(2)安装OpenSSL

按照缺省设置将OpenSSL安装在/usr/local目录下。

(3)为Apache扩展mod_ssl代码

	#gzip -d -c apache-1.3.24.tar.gz   tar xvf -
	#gzip -d -c mod_ssl-2.8.8-1.3.24.tar.gz   tar xvf -
	#cd mod_ssl-2.8.8-1.3.24
	#./configure --with-apache=apache-1.3.24
该命令运行成功之后,会有提示说明已经成功扩展了Apache的源代码。

(4)安装Apache

	#cd ../apache-1.3.24
	#SSL_BASE=/usr/local EAPI_MM=/usr/local \
	 ./configure --enable-module=so 
	 --enable-module=ssl --prefix=/usr/local
	#make
	#make certificate
	#make install
其中,Make certificate命令是为mod_ssl生成所需的安全证书,按照提示输入相应信息即可。这样,Apache就被安装在/usr/local目录下。

4.安装实现语言PHP

按照缺省配置,将为PHP提供即时生成PNG和JPG图像功能的GD库安装到/usr/local目录下; 然后采用PHP的Apache DSO安装模式将其安装到/usr/local/libexec目录,成为Apache的动态共享模块。另外,不要忘记把对MySQL的支持和GD库也编译到模块里。

5.安装分析控制台ACID

该部分的安装工作具体包括3个软件包:Adodb200.tar.gz、Phplot-4.4.6.tar.gz和Acid-0.9.6b21.tar.gz。安装过程十分简单,只需分别将这3个软件包解压缩并展开在Apache服务器的文档根目录下即可。

然后开始配置工作。转到Acid-0.9.6b21目录下编辑ACID的配置文件Acid_conf.php,给下列变量赋值:

	$Dblib_path="../adodb200"
	$DBtype="mysql"
	$alert_dbname="snort"
	$alert_host="localhost"
	$alert_port="3306"
	$alert_user="root"
	$alert_password="abc123"
	$archive_dbname="snort_archive"
	$archive_host="localhost"
	$archive_port="3306"
	$archive_user="root"
	$archive_password="abc123"
	$ChartLib_path="../phplot-4.4.6"
	$Chart_file_format="png"
	$portscan_file="/var/log/snort/portscan.log"
至此,网络入侵检测系统的软件安装工作结束。

三、系统部署及运行

本系统被部署在网络服务器所处的DMZ区,用来监控来自互联网和内网的网络流量。负责监控的网络探测器Snort使用无IP地址的网卡进行监听,以保证NIDS自身的安全; 通过另一块网卡接入内网,并为其分配内网所使用的私有IP地址,以便从内网访问分析控制台程序ACID。通过启用Apache服务器的用户身份验证和访问控制机制,并结合SSL,保证系统的访问安全。

另外,部署NIDS的关键是应当保证系统的监听网卡所连接的设备端口能够“看到”受监控网段的全部网络流量。在共享式网络中,这不是问题,但在交换式网络中,由于交换机的每个端口拥有自己的冲突域,因此无法捕获除广播和组播之外的网络流量,这就要求交换机提供监控端口,本网络使用的是Cisco Catalyst系列交换机,其监控端口是通过端口的SPAN特性来实现的,用交换机管理软件启用该特性即可。

为了运行该系统,以超级用户身份执行下列命令:

#/etc/init.d/mysql.server start

#/usr/local/bin/snort -c /etc/snort.conf -l /var/log/snort -I elx0 -D

#/usr/local/bin/apachectl sslstart

这样,NIDS已开始运行,然后在内网的管理PC机上启动浏览器,在地址栏中键入:https://192.168.1.8/acid-0.9.6b21/,其中192.168.1.8是为该NIDS内网网卡分配的IP地址。首次运行时,控制台会提示用户对入侵事件数据库进行扩展,按照提示扩展完毕后,控制台主界面出现。如图1所示。


图1 一天之内的报警频率

主界面里显示的信息包括:触发安全规则的网络流量中各种协议所占的比例、警报的数量、入侵主机和目标主机的IP地址及端口号等。ACID控制台还提供强大的搜索功能,用户可根据时间、IP地址、端口号、协议类型以及数据净荷(payload)等多种条件的灵活组合,在入侵事件数据库中进行查询,以帮助网管人员进行分析。

入侵特征库是否丰富对一个NIDS非常重要,本系统同时支持多种有影响的入侵特征库,包括CERT/CC、arachNIDS和CVE等。在警报中除了列出入侵事件的命名外,还有到相应入侵特征库的Web链接,如果某个警报存在多个命名,则同时予以列出,以便参考。网络管理人员可通过这些链接去查找在线入侵特征库,以便获得关于特定入侵事件更加详细的信息和相应的解决办法。

应用ACID提供的制图功能可以直观地对网络入侵事件进行分析,而生成的图表又可进一步丰富网管人员编制的报告。例如ACID分析控制台可以按用户指定的时间段生成入侵事件的频率图,如图2所示。


图2 一周报警频率

结束语

网络安全是一个复杂的问题,只依靠1~2种网络安全产品是不能解决问题的,必须综合应用多种安全技术,并将其功能有机地整合到一起,进而构成统一的网络安全基础设施。

对于一些企业用户来说,安全产品并不是非买不可,当前在互联网上以开放源代码为代表的免费资源非常多,这些企业应该努力开发与利用。也许有人会怀疑这种资源的可靠性,请不要忘记互联网的3大应用都在由开放源代码软件支撑着:互联网上超过半数的站点是在运行Apache; BIND完成着几乎全部的域名解析;说不定您的电子邮件正通过Sendmail程序在互联网上传递。



【责任编辑 李旭海】


投稿信箱:内容合作:010—65245588—3137
 





1、POSIX权限提升漏洞分析以及利用
2、全面了解系统中svchost.exe文件
3、对iis写权限的利用
4、10款Linux下安全工具详细介绍
5、UNIX系统安全
6、十种提高Linux系统安全性的招数
7、中文Win 2k漏洞修补三法

 信息化手册
· 专家教你QQ聊天防盗五大绝
· 校园网如何部署GSN全局安
· 什么是CIO?
· 浅谈CRM系统应用中的四大
· 架构、构件、组件、框架、
· DSM领域定义建模和MDA模型
· 企业信息化管理“新领域”
· 软件测试步骤介绍
· 影响软件测试效率的因素
· 软件测试的基本原则
 信息化查询
应用分类:
重点项目
ERP CRM 电子政务 HR 无线 网络安全 服务器 存储 VoIP 智能卡 视频会议
财务管理 远程教育 网络建设
重点行业
电信 金融证券 广电 政府
服装 石化 汽车 邮政
制造业 房地产 医疗 商业
宾馆旅游 教育 民航 工商税务 公安 电力 保险 仓储 海关 人事 其它
对此感兴趣】 【 到论坛发表评论 】 【 E-mail给朋友】 【 回频道首页 】 【 关闭窗口





垃圾邮件
何时不再来

宽待接入方式
一览

DDos
攻击分析与防御

政府采购
打开节能绿色通道

新媒体梦想
照进手机电视的现实

从选型到实施
全面解析CRM
信息化优秀案例
2005 信息化最具影响力品牌
——思科政府网络安全解决方案

2005 物流行业专业服务奖
——金蝶物流服务行业解决方案

2005 制造行业最佳项目实施奖
——神州数码PDM系统应用案例

2005 教育信息化优秀服务商
——NEC校园网络建设成功案例
漏洞播报
1、蠕虫Win32/Pipown注入winlogon.
2、病毒Win32/Seresp改变URL 妨碍用
3、“泽拉丁变种JR”发送垃圾邮件让
4、“QQ通行证变种YRV”窃取用户QQ
5、蠕虫Win32.Looked.KP定期下载运
6、冒充“超级兔子” 突破QQ软键盘
7、自动运行木马下载器变种YTZ通过
8、“杀软禁闭者204800”改系统时间
9、微软承认Excel 2007存在漏洞 不
10、Cisco Unified MeetingPlace跨站
精彩文章推荐
1、手机辐射标准 有望今年年内出台
2、上海有线互动电视 计划明年推广
3、中电华通:运营3.5GHz的机遇来临
4、夺三项目 WAPI联盟完成产业布局
5、专家称:要警惕WCDMA势力封杀TD
6、大唐电信投入13亿元担保豪赌3G
7、把握用户需求 是IPTV成功的关键
8、美宽带市场 落后于世界先进水平
9、黄金周用手机WAP可订购小额保险
10、互联网 改变了电信业的游戏规则
eNet商城促销

AP与Gateway双模支持WDS及POE供电

48个10/100Mbps快速以太网端口

GPRS上网卡;最高传送速度85.6Kbp

极具性价比防火墙中小企业最佳选择
热门关键字:笔记本 | 手机 | 笔记本电脑 | 数码 | 数码相机 | 服务器| 主板 | CPU | 音箱 | 显示器 | 一体机 | 服务器 | 信息化 | 解决方案 | 游戏
关于硅谷动力 | 广告服务 | 版权声明 | 加入硅谷动力 | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

网站合作、内容监督、商务咨询、投诉建议:010-65245588
合作建议:hezuo@mail.enet.com.cn
Copyright © 2000--2009 硅谷动力公司版权所有 京ICP证000088号

京ICP证000088号