2. 快速入门指南¶
这本指南将给你一个快速的开始运行苏瑞克塔,将只集中在基础上。要了解更多细节,请通读更具体的章节。
2.1. 安装¶
假设您运行的是最新版本的Ubuntu,因为官方PPA可以用于安装。
安装步骤:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update
sudo apt install suricata jq
添加了专用的PPA存储库,更新索引后,可以安装Suricata。我们建议安装 jq
这个工具将有助于显示Suricata的EVE JSON输出(在本指南后面描述)中的信息。
有关在其他系统上安装或使用特定编译选项的信息,请参阅 安装 .
安装Suricata后,您可以检查运行的Suricata版本,以及使用哪些选项以及服务状态:
sudo suricata --build-info
sudo systemctl status suricata
2.2. 基本设置¶
首先,确定测试人员应在其上检查网络数据包的接口和IP地址:
$ ip addr
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.23/24 brd 10.23.0.255 scope global noprefixroute enp1s0
使用该信息配置Suricata::
sudo vim /etc/suricata/suricata.yaml
有许多可能的配置选项,我们将重点放在 HOME_NET
变量和网络接口配置。这个 HOME_NET
在大多数情况下,变量应该包括被监视接口的IP地址和正在使用的所有本地网络。默认值已经包括RFC1918网络。在这个例子中 10.0.0.23
已包含在 10.0.0.0/8
. 如果不使用其他网络,则可以删除其他预定义值。
在本例中,接口名为 enp1s0
所以在 af-packet
节需要匹配。接口配置示例如下所示:
捕获设置:
af-packet:
- interface: enp1s0
cluster-id: 99
cluster-type: cluster_flow
defrag: yes
use-mmap: yes
tpacket-v3: yes
此配置使用IDS运行模式的最新建议设置作为基本设置。有许多可能的配置选项在专用章节中描述,特别是与高性能设置相关。
2.3. 签名¶
Suricata使用签名来触发警报,所以有必要安装这些并保持更新。签名也称为规则,因此 rule-files . 使用工具 suricata-update
可以获取、更新和管理规则以提供给Suricata。
在本指南中,我们只运行获取ET Open规则集的默认模式:
sudo suricata-update
之后,规则安装在 /var/lib/suricata/rules
这也是配置中的默认设置,并使用 suricata.rules
文件。
2.4. 奔跑苏瑞塔¶
安装了规则后,Suricata可以正常运行,因此我们重新启动它:
sudo systemctl restart suricata
要确保Suricata正在运行,请检查Suricata日志:
sudo tail /var/log/suricata/suricata.log
最后一行与此类似:
<Notice> - all 4 packet processing threads, 4 management threads initialized, engine started.
实际线程计数将取决于系统和配置。
要查看统计信息,请检查 stats.log
文件::
sudo tail -f /var/log/suricata/stats.log
默认情况下,它每8秒更新一次,以显示当前状态的更新值,例如处理了多少包以及解码了什么类型的流量。
2.5. 提醒¶
为了测试Suricata的IDS功能,最好使用签名进行测试。带ID的签名 2100498
从ET中,Open规则集是专门为此类测试用例编写的。
2100498::
alert ip any any -> any any (msg:"GPL ATTACK_RESPONSE id check returned root"; content:"uid=0|28|root|29|"; classtype:bad-unknown; sid:2100498; rev:7; metadata:created_at 2010_09_23, updated_at 2010_09_23;)
这些签名背后的语法和逻辑将在其他章节中介绍。这将对其有效负载内包含内容的任何IP流量发出警报。这个规则很容易触发。在我们触发它之前,开始吧 tail
查看的更新 fast.log
.
规则触发器:
sudo tail -f /var/log/suricata/fast.log
curl http://testmynids.org/uid/index.html
现在应该在日志中看到以下输出:
[1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 217.160.0.187:80 -> 10.0.0.23:41618
这应该包括时间戳和系统的IP。
2.6. 伊芙Json¶
更高级的输出是EVE JSON输出,详细说明见 Eve JSON Output . 要查看它的外观,建议使用 jq
解析JSON输出。
警报::
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'
这将显示每个警报的更多详细信息,包括元数据。
统计信息:
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")'
第一个示例显示内核捕获的数据包数;第二个示例显示所有统计信息。