You are on page 1of 3

免费 NIDS 的构建与应用

发布日期: 2006-05-06 来源:enet 作者:  出处:多多源码


一般说来,一个典型的网络攻击是以大量的端口扫描等手段获取所攻击对象的信息的,这个过程必然产生大量异常的网络流量,
它预示着即将到来的真正攻击。

这就要求网管人员对网络运行状态进行实时监控,以便随时发现可能的入侵行为,并进行具体分析,及时、主动地进行干预,从
而取得防患于未然的效果。完成这种功能的安全产品之一是网络入侵检测系统(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// 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/ 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。

You might also like