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
这些文件将位于通过以下两种方法之一设置的日志输出目录中:
Suricata配置文件:请参阅
default-log-dir
目录的名称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