7.2. 添加您自己的规则

如果您想自己创建一个规则并将其用于Suricata,本指南可能会有所帮助。

开始为规则创建文件。在控制台/终端窗口中使用以下示例之一:

sudo nano local.rules
sudo vim local.rules

写下你的规则,看 规则格式 并保存它。

更新Suricata配置文件,以便包含您的规则。使用以下示例之一:

sudo nano /etc/suricata/suricata.yaml
sudo vim /etc/suricata/suricata.yaml

确保你的本地规则文件已添加到规则列表:::

default-rule-path: /usr/local/etc/suricata/rules

rule-files:
  - suricata.rules
  - /path/to/local.rules

现在,运行suricata并查看是否正在加载规则。

suricata -c /etc/suricata/suricata.yaml -i wlan0

如果规则未能加载,Suricata将显示与它认为该规则不可加载时一样多的信息。特别注意细节:查找特殊字符、空格、大写字符等的错误。

接下来,检查您的日志文件是否在Suricata配置文件中启用 suricata.yaml .

如果您必须更正您的规则和/或修改Suricata的YAML配置文件,那么您必须重新启动Suricata。

如果您看到规则已成功加载,可以通过执行一些应该触发规则的操作来重新检查规则。

默认情况下,Suricata会将警报记录到两个位置

  • eve.json

  • fast.log

这些文件将位于通过以下两种方法之一设置的日志输出目录中:

  1. Suricata配置文件:请参阅 default-log-dir 目录的名称

  2. Suricata命令行:使用 -l /path/to/log-dir 在命名目录中创建日志文件。

下面的示例假定日志目录名为 /var/log/suricata ::

tail -f /var/log/suricata/fast.log

如果你能制定这样的规则:::

alert http any any -> any any (msg:"Do not read gossip during work";
content:"Scarlett"; nocase; classtype:policy-violation; sid:1; rev:1;)

你的警报应该是这样的:::

09/15/2011-16:50:27.725288  [**] [1:1:1] Do not read gossip during work [**]
[Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.0.32:55604 -> 68.67.185.210:80