Suricata是由OSIF(Open Information Security Foundation)开发的开源IDS(入侵检测系统)和IPS(入侵防御系统)。它可以监控和检查网络流量,处理每个数据包以检测恶意的网络活动。你可以设置日志事件、触发警报,甚至丢弃可疑网络活动的流量。

本教程将介绍如何在Ubuntu 24.04服务器上安装Suricata IDS。你将安装和配置Suricata,下载ET签名和规则,然后将Suricata作为systemd服务在后台运行。

前提条件

开始本指南之前,请确保满足以下条件:

- 一台Ubuntu 24.04服务器。
- 一个具有管理员权限的非root用户。

从源代码安装

本节将介绍如何通过从源代码编译的方式在系统上安装Suricata。在此之前,你将安装编译Suricata所需的软件包依赖。

首先,运行以下命令更新Ubuntu软件包索引并安装编译依赖。输入Y确认安装。

sudo apt update
sudo apt install autoconf automake build-essential cargo \
cbindgen libjansson-dev libpcap-dev libcap-ng-dev libmagic-dev liblz4-dev libpcre2-dev libtool \
libyaml-dev make pkg-config rustc zlib1g-dev

安装编译依赖

现在进入/usr/src目录,运行以下命令下载Suricata源代码并解压。

cd /usr/src

wget https://www.openinfosecfoundation.org/download/suricata-7.0.6.tar.gz
tar -xf suricata-7.0.6.tar.gz

进入suricata-7.0.6目录,使用以下命令配置Suricata编译。这将把suricata二进制文件安装到/usr/bin目录,配置文件安装到/etc/suricata,数据目录安装到/var/lib/suricata

cd suricata-7.0.6/
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var

配置Suricata编译选项

配置完成后,使用以下命令编译并安装Suricata。

sudo make && sudo make install-full

安装完成后,你将看到以下输出:

编译和安装完成

最后,运行以下命令定位suricata二进制文件并检查其版本。

which suricata
suricata --build-info

在以下输出中,你可以看到Suricata 7.0.6已安装在/usr/bin/suricata

检查Suricata版本

通过PPA仓库安装

如果你希望通过APT安装Suricata,需要将Suricata的PPA仓库添加到你的Ubuntu系统中。同时确保已安装software-properties软件包。

使用以下命令添加Suricata的PPA仓库:

sudo add-apt-repository ppa:oisf/suricata-stable

添加PPA仓库

现在更新Ubuntu软件包索引并使用apt命令安装Suricata。

sudo apt update
sudo apt install suricata

输入Y继续安装。

更新并安装Suricata

安装完成后,使用以下命令检查Suricata二进制文件及其版本。

which suricata
suricata --build-info

从下面的输出中可以看到,通过APT包管理器安装的Suricata版本为7.0.6

通过APT检查Suricata版本

最后,运行以下命令启用并停止suricata服务。在配置Suricata之前需要先停止它。

sudo systemctl enable suricata
sudo systemctl stop suricata

停止Suricata服务

配置Suricata

本节将配置Suricata以监控网络接口。Suricata将在目标接口上捕获恶意流量。

使用nano编辑器打开默认的Suricata配置文件/etc/suricata/suricata.yaml

sudo nano /etc/suricata/suricata.yaml

如果你使用的是本地网络,请将你的家庭网络子网添加到HOME_NETEXTERNAL_NET变量中。

HOME_NET: "[192.168.5.0/24]"
...
EXTERNAL_NET: "!$HOME_NET"

af-packet部分中,将默认的interface更改为你的目标接口。在本示例中,我们将使用Suricata监控接口enp0s3

af-packet:
 - interface: enp0s3

添加detect-engine选项,设置rule-reload: true以启用规则的实时重载。

detect-engine:
 - rule-reload: true

完成后保存文件并退出编辑器。

更新Suricata规则集

在启动和运行Suricata之前,你需要下载并更新Suricata签名和规则。这可以通过suricata-update命令工具来完成。

运行以下suricata-update命令下载并更新Suricata的ET规则。当ET规则缺失时Suricata将无法启动。

sudo suricata-update

Suricata规则将写入/var/lib/suricata/suricata.rules文件,如下所示:

更新Suricata规则

规则测试输出

你可以使用以下命令查看规则来源:

sudo suricata-update list-sources

运行Suricata

现在你已完成Suricata的配置,并下载和更新了ET规则,接下来将测试Suricata规则,然后启动并验证suricata服务。

要测试Suricata规则,运行以下suricata命令。这将处理/var/lib/suricata/suricata.rules文件中可用的规则。

sudo suricata -T -c /etc/suricata/suricata.yaml -v

如果没有错误,你将看到输出suricata: Configuration provided was successfully loaded.

测试Suricata配置

现在运行以下命令在后台启动suricata服务并验证其状态。

sudo systemctl start suricata
sudo systemctl status suricata

在以下输出中,你可以看到suricata服务正在运行。

验证Suricata服务状态

总结

恭喜!你已完成在Ubuntu 24.04服务器上安装Suricata IDS。你学习了两种安装Suricata的方法:从源代码手动编译和通过APT包管理器安装。你还学习了如何配置Suricata、更新Suricata签名和规则以及测试Suricata规则。