Suricata - 安全检测和防御工具
Suricata是一个功能强大、多功能、开放的漏洞检测平台,提供入侵检测(IDS)、入侵防御(IPS)和网络安全管理等功能。除了模型匹配和混合之外,它还执行深度数据包分析,这在威胁检测方面非常强大。
在撰写本指南时,Suricata 的最新版本是 6.0.5。
- 的
IDS/IPS – Suricata 是一种基于规则的入侵检测和防御引擎,它使用外部生成的规则(例如新兴威胁 Suricata 规则)来监控网络流量是否存在任何恶意活动、策略违规和威胁。
自动协议检测 – Suricata 引擎自动检测 HTTP 和 HTTPS 等协议。每个端口上的 FTP 和 SMB 并实施正确的检测和日志记录逻辑。这对于检测恶意软件和 CnC 技术非常有用。
Lua 脚本 – Suricata 可以调用提供高级恶意软件检测的 Lua 脚本,以识别和解码其他难以检测的恶意软件流量。
多线程 – Suricata 提供了确定网络流量的速度和重要性。该设备旨在利用现代多核硬件芯片组提供的增强处理能力。
的
在Linux中安装Suricata的入侵检测工具
在本节中,我们将演示如何在基于 RHEL 的发行版上安装 Suricata。
Suricata 由 Debian/Ubuntu 存储库提供,可以使用 apt 包管理器轻松安装。然而,值得注意的是,这不会安装最新版本的 Suricata。要安装最新版本,您需要从本指南稍后讨论的源安装它。
要使用 apt 包管理器安装 Suricata,请运行以下命令:
$ sudo apt install suricata -y
Suricata 插入后会自动启动。您可以按如下方式证明这一点。
$ sudo systemctl 状态猫鼬
要在 RHEL 发行版(例如 CentOS Stream、Rocky Linux、AlmaLinux、Fedora 和 RHEL)上安装 Suricata,必须首先启用 EPEL 存储库。
$ dnf 安装 https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [ RHEL 9 ]$ dnf 安装 https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [ RHEL 8 ]$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [ RHEL 7 ]
启用 EPEL 后,安装以下必需的软件包并将 OISF 存储库添加到您的系统。
----------- 在 Fedora 系统上 ----------- $ sudo dnf 安装 dnf-plugins-core$ sudo dnf Copper 启用@oisf/suricata-6.0----------- 在 RHEL 系统上 ----------- $ sudo dnf 安装 yum-plugin-copper$ sudo dnf Copper 启用@oisf/suricata-6.0
接下来,使用 yum 包管理器安装 Suricata,如图所示。
$ sudo dnf install meerkat -y或者$ sudo yum install meerkat -y
安装 Suricata 后,启动并验证其状况。
$ sudo systemctl 启动 Suricata$ sudo systemctl 状态猫鼬
来自 Suricata tso Source me Linux me
默认操作系统存储库不提供最新版本的 Suricata。如果您的目标是安装最新版本的 Suricata,那么您需要从源代码安装它。
在撰写本指南时,Suricata 的最新版本是 6.0.5。要在 Ubuntu/Debian 和 RHEL 发行版上从源代码安装 Suricata,请安装以下库、编译工具和依赖项。
----------- 在 Debian 系统上 ----------- $ sudo apt install rustc build-essential Cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap -ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 libnetfilter-queue-dev libnfnetlink-dev -y----------- 在 RHEL 系统上 ----------- $ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc 货物 lz4-开发-y
接下来,安装 Suricata-update 应用程序以更新 Suricata 规则。
$ sudo apt install python3-pip [在Debian上]$ sudo yum install python3-pip [在RHEL上]$ pip3 install --upgrade suricata-update
然后为 /usr/bin/suricata-update 创建示例连接。
$ sudo ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update
现在转到 wget 命令。
$ wget https://www.openinfosecfoundation.org/download/suricata-6.0.6.tar.gz
复制后,解压缩并安装 tarball 文件。
$ sudo tar -xvf suricata-6.0.6.tar.gz$ cd suricata-6.0.6$ ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var$ 制作$ 进行安装完整
在 Linux 中安装 Suricata
要开始配置 Suricata,我们需要指定内部 IP 和外部网络。为此,请转到配置文件。
$ sudo vim /etc/suricata/suricata.yaml
对于 HOME_NET 指令,指定 Linux 系统的 IP 地址。
HOME_NET:“[173.82.235.7]”
接下来,将 EXTERNAL_NET 指令设置为“!$HOME_NET”。
EXTERNAL_NET:“!$HOME_NET”
接下来,指定 Suricata 将在其上监视网络流量的网络接口。在我们的例子中,这是 eth0 接口。
您可以使用 ip 命令验证活动网络接口:
$ ip a
在配置文件中,使用网络接口的名称编辑接口方向。
- 接口:eth0
接下来,确保 default-rule-path 属性设置为 /etc/suricata/rules。
然后保存更改并关闭配置文件。然后重新启动 Suricata 以使更改生效。
$ sudo systemctl 状态猫鼬
在 Linux 中更新 Suricata 规则集
默认情况下,Suricata 在 /etc/suricata/rules 目录中附带一组有限的搜索规则。然而,这些在检测入侵者方面被认为是薄弱且无效的。您应该加载新兴威胁 (ET) 规则,这些规则被认为是 Suricata 最全面的规则。
Suricata 提供了一个名为 suricata-update 的工具,可以从外部服务器导入规则。要为您的服务器获取新规则,请运行以下命令。
$ sudo suricata-update -o /etc/suricata/rules
从输出中,您可以看到 suricata-update 获取免费的新兴威胁 ET Open 规则并将其保存在 Suricata 的 /etc/suricata/rules/suricata 规则文件中。此外,还表示已处理的规则数。此样本中包含 35941 人。其中,实施28221条,删除18条,修改1249条。
将 Suricata 规则添加到 Linux
suricata-update 工具允许您从规则集服务器导入规则。有些是免费的,例如 ET Open 集,而另一些则需要付费订阅。
要列出第一组规则颁发者,请执行 suricata-update 命令,如下所示。
$ sudo suricata-更新列表源
要添加命令,例如 tgreen/hunting 命令,请执行以下命令。
$ sudo suricata-update 启用源 tgreen/hunting
添加命令后,使用-o /etc/suricata/rules
flag 再次执行 suricata-update 命令。
$ sudo suricata-update -o /etc/suricata/rules
在 Linux 中测试 Suricata 规则
在开始测试 Suricata 之前,最好测试一下该程序是否良好。为此,请运行以下命令:
$ sudo suricata -T -c /etc/suricata/suricata.yaml -v
确保没有报告错误。如果您运行的是 RHEL、CentOS Stream、Fedora 和 Rocky Linux,请启动并运行 Suricata。
$ sudo systemctl 启动 Suricata$ sudo systemctl 启用 Suricata
到目前为止,我们已经成功安装了Suricata,并且我们已经对其进行了配置并更新了规则。ET 开放规则集包含超过 30,000 条用于检测恶意流量的规则。在本节中,我们将测试 Suricata 并查看它是否可以检测可疑的网络流量。
我们将按照 Suricata 快速入门指南的建议通过模拟攻击来测试 ET Open 命令。
IDS 的功能将通过向配置 NIDS(网络入侵和检测系统)的 testmynids.org 网站发送 HTTP 请求,使用签名 ID 2100498 进行测试。
$curl http://testmynids.org/uid/index.html
您应该得到以下结果。
uid=0(root) gid=0(root) groups=0(root)
通过模拟可通过 shell 在受感染的远程系统上执行的 id 命令的输出,修改了发送以触发警报的 HTTP 请求。
现在让我们检查一下苏里卡塔的记录,看看是否有类似的警告。Suricata 附带两个默认情况下派上用场的日志文件。
/var/log/suricata/fast.log/var/log/suricata/eve.log
我们还将查看 /var/log/suricata/fast.log 日志文件中与 grep 命令对应的日志条目。我们将从快速入门记录中搜索使用 2100498 规则标识符输入的记录。
$ grep 2100948 /var/log/suricata/fast.log
您将看到以下结果,表明登录。其中,173.82.235.7是服务器的公网IP地址。
09/09/2022-22:17:06.796434 [**] [1:2100498:7] GPL ATTACK_RESPONSE id 检查返回根 [**] [分类:潜在不良流量] [优先级:2] {TCP} 13.226.210.123 :80 -> 173.82.235.7:33822
或者,您可以检查 /var/log/suricata/eve.log 日志文件中的签名 ID 2100498,如图所示。
$ jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json
这是有关如何在 Linux 上安装和配置 Suricata 的综合指南。我们研究了各种配置方法,如何配置 Suricata 和更新 Suricata 规则,以及如何管理 Suricata systemd 服务和运行网络入侵测试。
我们希望您现在可以轻松安装和使用 Suricata 来保护您的系统免受网络攻击或恶意流量的侵害。