想要搭建一套高效可靠的入侵检测系统(IDS)?Snort 配合 MySQL、Apache、PHP 以及相关图形库的经典组合,是经过长期验证的成熟技术栈。下面这份详细安装指南,将从基础依赖库到整体环境联调,手把手带你走完整个部署流程。需要特别说明的是,所有软件包的版本号均为经过严格验证的固定搭配,请务必按照列表准备,否则可能引发兼容性问题。
一、安装所需软件
在动手操作之前,请确保你已经下载了以下所有安装包,并统一放置在一个目录中(比如 /ruanjian):
- mysql-4.1.11.tar.gz
- snort-2.4.4.tar.gz
- Apache2.0.53(httpd-2.0.53.tar.gz)
- php-5.0.4.tar.gz
- adodb480.tar.gz
- acid-0.9.6b23.tar.gz
- zlib-1.2.2.tar.gz
- jpgraph-2.1.1.tar.gz
- libpcap-0.9.4.tar.gz
- barnyard-0.2.0.tar.gz
- mysqlcc-0.9.4-win32.zip(Windows 客户端工具,可提前下载备用)
- snortrules-snapshot-2.4.tar.gz(Snort 规则库)
- openssl-0.9.7l.tar.gz
- libxml2-2.6.19.tar.gz
- libpng-1.2.13.tar.gz
- gd-2.0.33.tar.gz
- jpegsrc.v6b.tar.gz
注意:列表中 adodb、acid、barnyard 等文件虽然出现了两次,但只需各准备一份即可。
二、安装
整个安装过程遵循“先依赖后主程序”的原则,从底层库开始逐步向上搭建。下面按顺序操作,每一步都配有清晰的命令。
1. 安装 zlib-1.2.2
zlib 是数据压缩库,很多后续组件都会依赖它。解压、配置、编译、安装,一套标准流程即可完成:
#tar -xzvf zlib-1.2.2.tar.gz
#cd zlib-1.2.2
#./configure
#make
#make install
2. 安装 libpcap-0.9.4
libpcap 是网络数据包捕获库,也是 Snort 的核心依赖,没有它就无法抓取网络流量。同样三步走:
#tar -xzvf libpcap-0.9.4.tar.gz
#cd libpcap-0.9.4
#./configure
#make
#make install
3. 安装 libxml2-2.6.19.tar.gz
libxml2 提供 XML 解析能力,PHP 和某些工具会用到它,确保后续图形化界面正常解析配置:
#tar -zxvf libxml2-2.6.19.tar.gz
#cd libxml2-2.6.19
#./configure
#make
#make install
4. 安装 libpng-1.2.13.tar.gz
PNG 图像库,用于生成入侵检测系统的图形报表,让告警数据可视化更直观:
#tar -xvzf libpng-1.2.13.tar.gz
#cd libpng-1.2.13
#./configure
#make check
#make install
5. 安装 gd-2.0.33.tar.gz
GD 图形库,负责动态生成图片,结合 PHP 能实时输出网络流量与告警统计图:
#tar -zxvf gd-2.0.33.tar.gz
#cd gd-2.0.33
#./configure
#make
#make install
6. 安装 jpegsrc.v6b.tar.gz
JPEG 图像支持库,同样用于图形报表输出,与 GD 和 PHP 配合可生成高质量的告警图表:
#tar -zxvf jpegsrc.v6b.tar.gz
#cd jpegsrc.v6b
#./configure
#make
#make install
7. 安装 MySQL 4.1.11
数据库是 Snort 事件存储的核心后端,用于持久化存储告警日志,方便后续查询与分析。安装步骤稍多一些,先创建专用用户和目录:
#groupadd mysql
#useradd -g mysql mysql
#passwd mysql
#mkdir /usr/local/mysql
#chown -R mysql /usr/local/mysql
#mkdir /usr/local/mysql/var
#chown -R mysql /usr/local/mysql/var
#chgrp -R mysql /usr/local/mysql
然后切换到 mysql 用户进行编译安装:
$tar xzvf mysql-4.1.11.tar.gz
$cd mysql-4.1.11
$./configure --prefix=/usr/local/mysql --with-charset=gb2312
$make
$make install
$scripts/mysql_install_db
安装完成后,需要让系统识别 MySQL 库文件。编辑 /etc/ld.so.conf,在末尾添加两行:
/usr/local/mysql/lib/mysql
/usr/local/lib
然后执行 ldconfig -v 加载新的库路径(建议在 /ruanjian/zlib-1.2.2 目录下执行,确保库被正确索引)。
手动启动数据库验证一下,看是否运行正常:
#/usr/local/mysql/share/mysql/mysql.server start
为了开机自动启动,复制启动脚本到系统目录:
#cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/rc.local/mysql
8. 安装 Apache 及 SSL 支持
Web 服务器使用 Apache 2.0.53,并启用 SSL 加密,确保 ACID 管理界面通信安全。先编译 OpenSSL:
#tar -zxvf openssl-0.9.7l.tar.gz
#cd openssl-0.9.7l
#./config
#make
#make install
接着编译 Apache,注意开启 SSL 模块和动态加载支持:
#tar zxvf httpd-2.0.53.tar.gz
#cd httpd-2.0.53
#./configure \
--prefix=/usr/local/apache2 \
--enable-so \
--enable-ssl=static \
--with-ssl=/usr/local/ssl \
--enable-mods-shared=all
#make
#make install
接下来创建 SSL 证书和密钥,用于 HTTPS 加密访问。先创建目录并生成私钥和证书请求:
#mkdir key
#cd key
#openssl genrsa -des3 -out server.key 1024
#openssl req -new -key server.key -out server.csr
在生成证书请求时,系统会提示输入以下信息(请根据实际情况填写):
- Country Name:两个字母的国家代号
- State or Province Name:省份名称
- Locality Name:城市名称
- Organization Name:公司名称
- Organizational Unit Name:部门名称
- Common Name:你的姓名或域名
- Email Address:邮箱地址
然后用自签名方式生成证书(有效期365天):
#openssl x509 -days 365 -req -in server.csr -signkey server.key -out server.crt
把证书和密钥放到 Apache 的配置目录中:
#mkdir /usr/local/apache2/conf/ssl.crt
#mkdir /usr/local/apache2/conf/ssl.key
#cp server.crt /usr/local/apache2/conf/ssl.crt/
#cp server.key /usr/local/apache2/conf/ssl.key/
9. 安装 PHP 5.0.4
PHP 负责动态页面生成,需要与 Apache 集成,同时激活对 MySQL、GD、JPEG、PNG、Zlib 等库的支持。编译参数较多,请仔细核对路径,确保所有扩展都被正确启用:
$./configure \
--prefix=/usr/local/php5 \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-libxml-dir=/usr/local/lib \
--with-zlib \
--with-zlib-dir=/usr/local/lib \
--with-png \
--with-gd \
--with-jpeg \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--enable-soap \
--enable-sockets
#make
#make install
#cp php.ini-dist /usr/local/lib/php.ini
安装完成后,需要修改 Apache 的配置文件 /usr/local/apache2/conf/httpd.conf,添加以下关键配置:
- 加载 PHP 模块并支持 .php 文件解析:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php - 指定 SSL 证书和密钥路径,确保 HTTPS 正常运行:
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
每次启动 Apache 的 SSL 模式时,都需要输入 server.key 的口令,这在实际运维中很不方便。可以通过以下方法去掉口令保护,实现自动启动:
#cd /usr/local/apache2/conf/ssl.key
#cp server.key server.key.org
#openssl rsa -in server.key.org -out server.key
#chmod 400 server.key
现在,你可以启动 Apache 的 SSL 模式了,验证 HTTPS 是否可用:
#cd /usr/local/apache2/bin
#./apachectl startssl
至此,整个 LAMP + Snort 基础环境已经搭建完成。接下来就可以继续安装 ADODB、ACID、Snort 以及 Barnyard 等组件,逐步构建完整的入侵检测平台了。
