Linux Snort检测
CentOS 中 Snort 检测的实现
安装前准备
安装依赖包:
Snort 在 CentOS 上安装需要一些基础的开发工具和库。使用以下命令安装相关依赖:
yum install -y gcc gcc-c++ flex bison zlib-devel libpcap-devel pcre-devel openssl-devel
安装 Snort
下载 Snort 源代码:
可以从 Snort 官方网站下载最新版本的 Snort 源代码包。
https://www.snort.org
也可以使用wget命令直接从命令行下载,例如(版本号可能会更新):
wget https://www.snort.org/downloads/snort/snort-3.1.61.0.tar.gz
解压下载的文件:
tar -zxvf snort-3.1.61.0.tar.gz
配置和编译安装:
进入解压后的 Snort 目录:
cd snort-3.1.61.0
创建编译目录并进入:
mkdir build
cd build
运行cmake进行配置(这一步是针对 Snort 3 版本的配置方式):
cmake.. -DCMAKE_INSTALL_PREFIX=/usr/local/snort -DSNORT_LIBPCAP=/usr/local/lib -DSNORT_OPENSSL_INCLUDE_DIR=/usr/include/openssl -DSNORT_OPENSSL_LIB_DIR=/usr/lib64 -DRULES_LIB_DIR=/usr/local/snort/lib -DRULES_INSTALL_DIR=/usr/local/snort/rules
编译和安装:
make
make install
配置 Snort 规则和检测选项
复制配置文件模板:
Snort 安装后会有一个配置文件模板,需要将其复制为实际使用的配置文件:
cp /usr/local/snort/etc/snort/snort.lua.example /usr/local/snort/etc/snort/snort.lua
编辑配置文件:
使用文本编辑器打开snort.lua文件,进行如下主要配置:
设置网络变量:定义本地网络和外部网络范围,例如:
set HOME_NET = "192.168.0.0/16"
set EXTERNAL_NET = "any"
这里HOME_NET可以根据实际的本地网络 IP 段进行修改,EXTERNAL_NET定义为any表示检测来自任何外部网络的流量。
配置规则路径:指定 Snort 规则文件的路径,例如:
这表示包含一个本地规则文件local.rules,需要从官方或其他可靠渠道获取规则文件并放置在指定路径下。
include RULE_PATH.."local.rules"
启动 Snort 检测
测试配置文件:
在启动 Snort 检测之前,先使用以下命令测试配置文件是否正确:
/usr/local/snort/bin/snort -T -c /usr/local/snort/etc/snort/snort.lua
如果配置文件没有问题,会显示测试通过的信息。
启动检测:
使用以下命令启动 Snort 进行网络流量检测(假设要检测eth0网络接口):
/usr/local/snort/bin/snort -D -i eth0 -c /usr/local/snort/etc/snort/snort.lua
其中-D表示以守护进程模式运行,这样 Snort 会在后台持续运行;-i指定要检测的网络接口。
Ubuntu 中 Snort 检测的实现
安装前准备
安装依赖包:
同样,Snort 在 Ubuntu 上也需要一些依赖包来进行安装和运行。使用以下命令安装:
apt-get install -y build-essential libpcap-dev libpcre3-dev zlib1g-dev
安装 Snort
下载 Snort 源代码:
从官方网站下载或者使用wget命令,例如(版本号可能更新):
wget https://www.snort.org/downloads/snort/snort-3.1.61.0.tar.gz
解压文件:
tar -zxvf snort-3.1.61.0.tar.gz
配置和编译安装:
进入解压后的 Snort 目录:
cd snort-3.1.61.0
创建编译目录并进入:
mkdir build
cd build
运行cmake进行配置(针对 Snort 3 版本):
cmake.. -DCMAKE_INSTALL_PREFIX=/usr/local/snort -DSNORT_LIBPCAP=/usr/local/lib -DSNORT_OPENSSL_INCLUDE_DIR=/usr/include/openssl -DSNORT_OPENSSL_LIB_DIR=/usr/lib -DRULES_LIB_DIR=/usr/local/snort/lib -DRULES_INSTALL_DIR=/usr/local/snort/rules
注意,在 Ubuntu 中,openssl库文件和头文件位置可能与 CentOS 略有不同,这里的参数含义和 CentOS 中的相同,主要是指定安装路径和依赖库位置等。
编译和安装:
make
make install
配置 Snort 规则和检测选项
复制配置文件模板:
与 CentOS 类似,复制配置文件模板:
cp /usr/local/snort/etc/snort/snort.lua.example /usr/local/snort/etc/snort/snort.lua
编辑配置文件:
打开snort.lua文件进行配置:
设置网络变量:
set HOME_NET = "192.168.0.0/16"
set EXTERNAL_NET = "any"
配置规则路径:
include RULE_PATH.."local.rules"
启动 Snort 检测
测试配置文件:
先测试配置文件是否正确:
/usr/local/snort/bin/snort -T -c /usr/local/snort/etc/snort/snort.lua
如果没有错误,就可以启动检测。
启动检测:
假设要检测eth0网络接口,使用命令:
/usr/local/snort/bin/snort -D -i eth0 -c /usr/local/snort/etc/snort/snort.lua