You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Suricata自定义规则无法加载至suricata.rules的排查求助

排查Suricata自定义规则未触发告警问题

环境信息

  • 系统:Ubuntu 20.04.5 LTS(Focal Fossa)
  • Suricata运行模式:IDS(af-packet)
  • 执行用户:root

系统版本验证输出:

NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"

自定义规则配置

已添加SSH非标准端口告警规则,使用自定义规则段起始SID 1000000,规则内容:

########### Test Rules #############
alert ssh any any -> xxx.xxx.60.6 !22 (msg:"SSH TRAFFIC on non-SSH port"; flow:to_client, not_established; classtype: misc-attack; target: dest_ip; sid:1000000;)

文件权限验证

规则文件权限与系统默认规则一致,均为root所有:

ls -halt /var/lib/suricata/rules/
total 22M
-rw-r--r-- 1 root root 3.2K Oct 17 00:00 classification.config
drwxr-x--- 2 root root 4.0K Oct 17 00:00 .
-rw-r--r-- 1 root root  22M Oct 17 00:00 suricata.rules
-rw-r--r-- 1 root root  210 Oct 13 21:45 local.rules

配置文件规则加载验证

已在suricata.yaml中配置加载自定义规则文件,且已重启服务:

cat /etc/suricata/suricata.yaml | grep "rule-files" -A 5 -B 5
##

#default-rule-path: /var/lib/suricata/rules

default-rule-path: /etc/suricata/rules
rule-files:
  - suricata.rules
  - /var/lib/suricata/rules/local.rules
  - /etc/suricata/rules/*.rules

问题现象

  1. 执行cat /var/lib/suricata/rules/suricata.rules | grep sid:1000000未匹配到规则(注:自定义规则实际存放在local.rules而非suricata.rules)
  2. 通过tcpdump确认存在符合规则匹配条件的流量,但fast.log中无该规则的告警记录(其他规则可正常生成日志)
  3. Suricata服务启动无报错:
systemctl status suricata.service
● suricata.service - LSB: Next Generation IDS/IPS
     Loaded: loaded (/etc/init.d/suricata; generated)
     Active: active (running) since Mon 2022-10-17 13:11:39 UTC; 8h ago
       Docs: man:systemd-sysv-generator(8)
    Process: 2184275 ExecStart=/etc/init.d/suricata start (code=exited, status=0/SUCCESS)
      Tasks: 78 (limit: 618963)
     Memory: 25.2G
     CGroup: /system.slice/suricata.service
             └─2184295 /usr/bin/suricata -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid --af-packet -D -v>

Oct 17 13:11:39 sec3 systemd[1]: Starting LSB: Next Generation IDS/IPS...
Oct 17 13:11:39 sec3 suricata[2184275]: Starting suricata in IDS (af-packet) mode... done.
Oct 17 13:11:39 sec3 systemd[1]: Started LSB: Next Generation IDS/IPS.

排查步骤建议

  1. 验证规则是否被正确加载
    执行规则检查命令,查看规则解析状态:

    suricata -c /etc/suricata/suricata.yaml -T
    

    重点查看输出中是否包含sid:1000000的规则,以及是否存在语法错误提示。

  2. 修正规则逻辑问题
    当前规则的flow:to_client, not_established条件存在逻辑矛盾:

    • SSH初始连接请求是从客户端发往服务器(对应to_server方向),而规则指定to_client(服务器到客户端),导致无法匹配初始流量
    • 建议修改规则的flow条件,或先移除flow条件测试:
      alert ssh any any -> xxx.xxx.60.6 !22 (msg:"SSH TRAFFIC on non-SSH port"; classtype: misc-attack; target: dest_ip; sid:1000000;)
      
  3. 确认规则文件加载状态
    查看Suricata启动日志/var/log/suricata/suricata.log,确认是否成功加载/var/lib/suricata/rules/local.rules文件。

  4. 直接指定规则文件测试
    临时修改启动方式,仅加载自定义规则文件测试:

    systemctl stop suricata
    suricata -c /etc/suricata/suricata.yaml --af-packet -v -S /var/lib/suricata/rules/local.rules
    

    触发测试流量后,查看是否生成告警。

  5. 检查日志过滤配置
    确认suricata.yaml中fast.log的配置,未排除misc-attack类别告警,且sid:1000000规则未被全局禁用。


内容的提问来源于stack exchange,提问作者GangGreenTemperTatum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:10:20