分享
 
 
 

免费NIDS的构建与应用

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在“免费与付费IDS孰优孰劣?”一文,针对免费与付费IDS的不同,为用户介绍了免费或付费IDS的选购要点,下面我们以免费IDS为例,具体介绍如何构建和应用免费NIDS。

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

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

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

一、系统概述

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

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

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

附表

需要特别说明的是,虽然本例中构建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

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

(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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有