使用 Snort 进行入侵检测
![]() 在此通知移除之前,请勿按照此处的说明操作。 |
本指南将设置(列表可能会更改)
- Snort
- Barnyard (可能)
- BASE
本指南将假设
- 您了解您的网络设置(至少知道存在哪些子网)。
- 您已安装 Alpine 2.0.2 并可以正常联网。
- 您今天早上至少喝了三杯咖啡。而不是脱咖啡因的。
获取开发包
安装 Alpine 和预打包组件
apk add alpine-sdk mysql-dev php-mysql lighttpd php-xml php-pear libpcap-dev php-gd pcre-dev wireshark tcpdump tcpflow cvs bison flex
下载非软件包应用程序
下载以下软件包
出于本文档的目的,我们将假设您将这些文件下载到 /usr/src。
- 从 www.snort.org 下载 snort。 在本文档中,我们使用了 2.8.6.1 版本。
- 从 https://www.snort.org/downloads/#rule-downloads 下载 snort 规则。
- 从 https://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz/download 下载 BASE。
- 从 https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-511-for-php5/adodb511.zip/download 下载 adodb5。
编译 Snort
使用类似以下命令解压缩 snort
tar -zxvf snort-2.8.6.1.tar.gz
然后执行以下操作
cd snort-2.8.6.1 ./configure -enable-dynamicplugin --with-mysql make make install
配置 Snort 和规则集
mkdir /etc/snort cd /etc/snort cp /usr/src/snort-2.8.6.1/etc/* . mv /usr/src/snortrules-snapshot-2861.tar.gz /etc/snort/. tar -zxvf /usr/src/snortrules-snapshot-2861.tar.gz
现在编辑 snort.conf 文件
vi snort.conf
并更改以下内容
- 将 "var HOME_NET any" 更改为 "var HOME_NET X.X.X.X/X" (用您的受信任网络填充子网)
- 将 "var EXTERNAL_NET any" 更改为 "var EXTERNAL_NET !$HOME_NET" (这表示除 HOME_NET 之外的所有内容都是外部的)
- 将 "var RULE_PATH ../rules" 更改为 "var RULE_PATH /etc/snort/rules"
- 将 "var SO_RULE_PATH ../so_rules" 更改为 "var SO_RULE_PATH /etc/snort/so_rules"
- 将 "var PREPROC_RULE_PATH ../preproc_rules" 更改为 "var PREPROC_RULE_PATH /etc/snort/preproc_rules"
- 注释掉包含 "dynamicdetection directory /usr/local/lib/snort_dynamicrules" 的行 (通过在该行前面放置 "#")
- 向下滚动列表到 "# output database: log, ..." 部分,并删除此行前面的 "#"。
- 编辑此行使其看起来像这样
- output database: log, mysql, user=root password=yoursecretpassword dbname=snort host=localhost
- 记下用户名、密码和 dbname。 当我们设置 mysql 时,您将需要此信息。
- 找到此行 (当前版本中的第 194 行)
- preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 20480 decompress_depth 20480
- 并从 "compress_depth" 中删除到行尾。 完成后,该行将显示
- preprocessor http_inspect: global iis_unicode_map unicode.map 1252
- 找到此行 (当前版本中的第 207 行)
- inspect_gzip \
- 并删除它。
- 保存并退出。
启动并设置 MySQL
(需要在此处添加有关首次启动 MySQL 的详细信息)
/usr/bin/mysql_install_db --user=mysql rc-update add mysql rc-service mysql start /usr/bin/mysqladmin -u root password 'password' (将密码设置为与 snort.conf 文件中指定的密码相同的密码) mysql -u root -p
进入 mysql 后,键入以下命令
mysql> create database snort; mysql> exit
现在创建数据库模式
mysql -D snort -u root -p < /usr/src/snort-2.8.6.1/schemas/create_mysql
配置 PHP 和 PEAR
编辑 /etc/php/php.ini 并在 "Dynamic Extensions" 下添加以下内容。
extension=mysql.so extension=gd.so
保存并退出。 从命令行,键入以下内容
pear install Image_Color pear install Image_Canvas-alpha pear install Image_Graph-alpha pear install mail pear install mail_mime
启动 Apache 或 lighttpd
需要决定在生产环境中使用哪个。
设置 BASE
^
mv /usr/src/adodb5 /var/www/localhost/htdocs/. mv /usr/src/base-1.4.5/* /var/www/localhost/htdocs/.
现在,打开您的 Web 浏览器并导航到 http://X.X.X.X/setup (其中 x.x.x.x 是您的服务器的 IP 地址)
- 在第一页上单击继续。
- 步骤 1/5:输入 ADODB 的路径。
- 这是 /var/www/localhost/htdocs/adodb5。
- 步骤 2/5
- 数据库类型 = MySQL,数据库名称 = snort,数据库主机 = localhost,数据库用户名 = root,数据库密码 = YOUR_PASSWORD
- 步骤 3/5:如果您想使用身份验证,请在此处输入用户名和密码。
- 步骤 4/5:单击创建 BASE AG。
- 步骤 5/5:在步骤 4 完成后,在底部单击“现在继续到步骤 5”。
- 复制屏幕上的文本,然后粘贴到名为 /var/www/localhost/htdocs/base_conf.php 的新文件中。 保存该文件。
配置 Barnyard
为了提高性能。