如何在 Debian 12 上安装 Suricata IDS/IPS
Suricata 是开放信息安全基金会 (OISF) 开发的一款功能强大的开源网络分析和威胁检测软件。 Suricata 可用于多种用途,例如入侵检测系统 (IDS)、入侵防御系统 (IPS) 和网络安全监控引擎。
Suricata 使用规则和签名语言来检测和防止网络上的威胁。它是企业和小型和大型公司使用的免费且功能强大的网络安全工具。
在本教程中,我们将逐步向您展示如何在 Debian 12 上安装 Suricata。我们还将向您展示如何使用 suricata-update 实用程序配置 Suricata 和管理 Suricata 规则集。
先决条件
在继续之前,请确保您具备以下条件:
- Debian 12 服务器。
- 具有 sudo 管理员权限的非 root 用户。
安装 Suricata
Suricata 是一个网络安全监控引擎,可用于 IDS(入侵检测系统)和 IPS(入侵防御系统)。它可以安装在大多数 Linux 发行版上。对于 Debian,Suricata 可在 Debian Backports 存储库中找到。
首先运行以下命令来激活 Debian Bookworkm 的向后移植存储库。
sudo echo "deb http://deb.debian.org/debian/ bookworm-backports main" > /etc/apt/sources.list.d/bookworm-backports.sources.list
然后,使用以下命令更新包索引。
sudo apt update
更新存储库后,使用以下 apt install 命令安装 suricata 软件包。输入 y 确认安装。
sudo apt install suricata
现在 Suricata 已安装,请使用以下 systemctl 命令检查 Suricata 服务。
sudo systemctl is-enabled suricata
sudo systemctl status suricata
以下输出应确认 Suricata 已启用并在您的系统上运行。
您还可以通过运行以下命令来检查 Suricata 版本。
sudo suricata --build-info
在此示例中,您已通过 Debian 计算机上的反向移植存储库安装了 Suricata 6.0。
配置Suricata
安装 Suricata 后,您需要配置 Suricata 来监控目标网络接口。为此,您可以使用ip 命令实用程序找出网络接口的详细信息。然后配置 Suricata 配置 /etc/suricata/suricata.yaml 来监控目标网络接口。
在配置Suricata之前,请通过运行以下命令检查Internet访问的默认网关。
ip -p -j route show default
在此示例中,服务器的默认 Internet 网关是接口 eth0,Suricata 将监视接口 eth0。
现在使用以下 nano 编辑器命令打开默认 Suricata 配置 /etc/suricata/suricata.yaml。
sudo nano /etc/suricata/suricata.yaml
将默认选项 Community-id 更改为 true。
# enable/disable the community id feature.
community-id: true
在 HOME_NET 变量中,将默认网络子网更改为您的子网。
# HOME_NET variable
HOME_NET: "[192.168.10.0/24]"
在 af-packet 部分中,输入网络接口的名称,如下所示。
af-packet:
- interface: eth0
然后将以下行添加到下面的配置中,以动态启用实时重新加载规则。
detect-engine:
- rule-reload: true
完成后保存并关闭文件。
接下来,运行以下命令重新加载 Suricata 规则集而不终止进程。然后使用以下 systemctl 命令重新启动 Suricata 服务。
sudo kill -usr2 $(pidof suricata)
sudo systemctl restart suricata
最后,使用以下命令检查 Suricata。
sudo systemctl status suricata
Suricata 服务现在应该使用新设置运行。
通过 Suricata-update 管理 Suricata 规则集
规则集是一组签名,可自动检测网络接口上的恶意流量。在下一节中,您将通过 suricata-update 命令行下载和管理 Suricata 规则集。
如果您是第一次安装 Suricata,请运行 suricata-update 命令将规则集下载到您的 Suricata 安装中。
sudo suricata-update
在以下输出中,您应该看到规则集“Emerging Threats Open”或et/open已下载并存储在目录/var/lib/suricata中/rules/suricata.rules。您还应该看到有关下载的规则的信息,例如总共 45055 和 35177 激活的规则。
现在使用以下 nano 编辑器命令重新打开 suricata 配置 /etc/suricata/suricata.yaml。
sudo nano /etc/suricata/suricata.yaml
将默认规则路径更改为 /var/lib/suricata/rules,如下所示:
default-rule-path: /var/lib/suricata/rules
完成后保存并关闭文件。
然后运行以下命令重新启动 Suricata 服务并应用更改。然后,检查 Suricata 是否真正运行。
sudo systemctl restart suricata
sudo systemctl status suricata
如果一切正常,您应该看到以下输出:
您还可以通过运行以下命令启用 et/open 规则集并检查已启用的规则集列表。
suricata-update enable-source et/open
suricata-update list-sources --enabled
您应该看到 et/open 规则集已启用。
以下是您需要了解的规则集管理的一些 suricata-update 命令。
使用以下命令更新 suricata 规则集索引。
sudo suricata-update update-sources
检查索引中可用规则集源的列表。
suricata-update list-sources
现在您可以使用以下命令激活 suricata 规则集。在此示例中,您将激活新规则集 oisf/trafficid。
suricata-update enable-source oisf/trafficid
接下来,您将再次更新 Suricata 规则并重新启动 Suricata 服务以应用更改。
sudo suricata-update
sudo systemctl restart suricata
您可以再次运行以下命令以确保规则集已启用。
suricata-update list-sources --enabled
您还可以使用以下命令禁用规则集。
suricata-update disable-source et/pro
如果要删除规则集,请使用以下命令。
suricata-update remove-source et/pro
测试 Suricata 作为 IDS
Suricata 作为 IDS(入侵检测系统)的安装和配置现已完成。在下一步中,您将使用 ET/Open 专门用于测试的签名 ID 2100498 来测试您的 Suricata IDS。
您可以通过运行以下命令从 ET/Open 规则集中检查签名 ID 2100498。
grep 2100498 /var/lib/suricata/rules/suricata.rules
当您访问内容为“uid=0(root) gid=0(root) groups=0(root)”的文件时,签名 ID 2100498 会向您发出警告。发出的警告可以在文件 /var/log/suricata/fast.log 中找到。
使用以下 tail 命令检查 /var/log/suricata/fast.log 日志 文件。
tail -f /var/log/suricata/fast.log
打开一个新终端并连接到您的 Debian 服务器。然后运行以下命令来测试 Suricata 安装。
curl http://testmynids.org/uid/index.html
如果一切顺利,您应该会看到文件 /var/log/suricata/fast. 日志中的警报已被触发。
您还可以检查文件/var/log/suricata/eve.json中的json格式日志。
首先,通过运行以下 apt 命令安装 jq 工具。
sudo apt install jq -y
安装 jq 后,使用 tail 和 jq 命令检查日志文件 /var/log/suricata/eve.j 子文件。
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'
您应该看到输出格式为 json。
以下是您可以用来检查统计信息的一些其他命令。
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="stats")|.stats.capture.kernel_packets'
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="stats")'
结论
恭喜您在 Debian 12 服务器上成功安装 Suricata 作为 IDS(入侵检测系统)。您还通过 Suricata 监控了网络接口,并完成了 Suricata-update 实用程序管理规则集的基本使用。最后,您通过查看 Suricata 日志将 Suricata 作为 IDS 进行了测试。