分享
 
 
 

一个网络入侵检测系统的实现

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

一、 前言

互联网的普及给网络管理人员带来了极大的挑战:随处可得的黑客工具和系统漏洞信息使我们的网络无时无刻不处于危险之中。一般说来,一个典型的网络攻击是以大量的端口扫描等手段获取关于攻击对象的信息为开端的,这个过程必然产生大量的异常网络流量预示着即将到来的真正攻击,然而当前被广泛使用的网络产品都具有一个普遍的弱点--被动防御,即对这些重要的网络攻击先兆熟视无睹,错过了最佳的防御时间。为了扭转这种不利的局面,变被动防御为积极防御,就要求网管人员对网络的运行状态进行实时监控以便随时发现入侵征兆并进行具体的分析,然后及时进行干预,从而取得防患于未然的效果。完成这种功能的安全产品就是网络入侵检测系统(Network Intrusion Detection Systems,NIDS)。

目前,市场上的这类产品可分为硬件和软件两种类型,但无论选择那种都有一个共同的特点:昂贵。即便在单点安装的情况下,无论是硬件类型的费用还是软件类型的许可费都需要数万元乃至十余万元。如果无法承受这笔开支该怎么办?难道网络安全工作就不去搞了吗?答案是否定的。

正如所带给我们的巨大挑战一样,互联网也同时带给我们无数的宝贵资源,只等我们去开发、利用。开放源代码软件(Open Source Software)便是其中之一,免费可得的软件发布形式,使其具有广大的用户群;众多志愿者的协同开发模式使其具有卓越的兼容性;大量的网上社区弥补了缺少商业服务的不足。本文试图论述利

用互联网上免费可得的开放源代码软件实现一个完整的网络入侵检测系统的过程。

二、 系统概述

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

由于实现本系统所需的软件较多,有必要在此进行简要的说明:

Snort

功能简述:网络入侵探测器;

正式网址:http://www.snort.org/

软件版本:1.8.6

Libpcap

功能简述:Snort所依赖的网络抓包库;

正式网址:http://www.tcpdump.org/

软件版本:0.7.1

MySQL

功能简述:入侵事件数据库;

正式网址:http://www.mysql.org/

软件版本:3.23.49

Apache

功能简述:Web服务器;

正式网址:http://www.apache.org/

软件版本:1.3.24

Mod_ssl

功能简述:为Apache提供SSL加密功能的模块;

正式网址:http://www.modssl.org/

软件版本:2.8.8

OpenSSL

功能简述:开放源代码的SSL加密库,为mod_ssl所依赖;

正式网址:http://www.openssl.org/

软件版本:0.9.6d

MM

功能简述:为Apache的模块提供共享内存服务;

正式网址:http://www.engelschall.com/sw/mm/

软件版本:1.1.3

PHP

功能简述:ACID的实现语言;

正式网址:http://www.php.net/

软件版本:4.0.6

GD

功能简述:被PHP用来即时生成PNG和JPG图像的库;

正式网址:http://www.boutell.com/gd/

软件版本:1.8.4

ACID

功能简述:基于Web的入侵事件数据库分析控制台;

正式网址:http://www.cert.org/kb/aircert/

软件版本:0.9.6b21

ADODB

功能简述:为ACID提供便捷的数据库接口;

正式网址:http://php.weblogs.com/ADODB

软件版本:2.00

PHPlot

功能简述:ACID所依赖的制图库;

正式网址:http://www.phplot.com/

软件版本:4.4.6

上述软件都是开源软件,可以直接登录相应软件的正式网站,下载源代码。此外,需要特别说明的一点是虽然本例中网络入侵检测系统所采用的系统平台是Solaris 8 for Intel Platform,但是在其它种类的系统平台上,如Linux 、OpenBSD以及Windows 2000等,其具体的实现步骤大同小异,因此就不在另行说明了。

三、 安装及配置

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

1、 安装MySQL

首先,以超级用户的身份登录系统,创建mysql 用户和mysql用户组;

然后,以mysql身份登录,执行下列命令:

$gzip -d -c mysql-3.23.49.tar.gz | tar xvf -

$cd mysql-3.23.49

$./configure

$make

$make install

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

2、 安装Snort

首先安装Snort所依赖的库libpcap:

#gzip -d -c libpcap-0.7.1.tar.gz | tar xvf -

#cd libpcap-0.7.1

#./configure

#make

#make install

这样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、 安装Apache

1) 安装MM库

#gzip -d -c mm-1.1.3.tar.gz | tar xvf -

#cd mm-1.1.3

#./configure

#make

#make install

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

2) 安装OpenSSL

#gzip -d -c openssl-0.9.6d.tar.gz | tar xvf -

#cd openssl-0.9.6d

#./config

#make

#make test

#make install

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库:

#gzip -d -c gd-1.8.4.tar.gz | tar xvf -

#cd gd-1.8.4

#make

#make install

按照缺省配置,将其安装到/usr/local目录下。接下来开始正式安装PHP:

#gzip -d -c php-4.0.6.tar.gz | tar xvf -

#cd php-4.0.6

#./configure -with-mysql=/usr/local

--with-apxs=/usr/local/bin/apxs

--with-gd=/usr/local

#make

#make install

此处采用的是PHP的Apache动态模块DSO安装模式,完成之后,将会在/usr/local/libexec目录下生成Apache DSO模块libphp4.so。然后,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有