使用 Snort 进行入侵检测

来自 Alpine Linux
此材料正在制作中...

在此通知移除之前,请勿按照此处的说明操作。
(最后编辑由 Sertonix 于 2023 年 11 月 17 日。)

本指南将设置(列表可能会更改)

  • 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

为了提高性能。