CrowdSec常规的白名单不能用于启用了CRS的AppSec WAF,如果是被CRS规则拦截的,则最好使用插件的方式来排除。创建插件目录,例如grafana-exclusions:
mkdir -p /var/lib/crowdsec/data/crs-plugins/grafana-exclusions
创建*-before.conf文件,例如grafana-before.conf:
nano /var/lib/crowdsec/data/crs-plugins/grafana-exclusions/grafana-before.conf
文件名必须以-before.conf结尾,这样包含的规则才会在CRS主规则集执行之前生效(才能提前排除规则或更改参数)写入SecRule规则:
SecRule REQUEST_FILENAME "@beginsWith /apis/dashboard.grafana.app/" \
"id:9900001,\
phase:1,\
pass,\
nolog,\
ctl:ruleRemoveById=911100,\
ctl:ruleRemoveById=932115,\
ctl:ruleRemoveById=942100"
SecRule REQUEST_FILENAME "@beginsWith /api/ds/query" \
"id:9900002,\
phase:1,\
pass,\
nolog,\
ctl:ruleRemoveById=942100"
SecRule REQUEST_FILENAME "@beginsWith /api/datasources" \
"id:9900003,\
phase:1,\
pass,\
nolog,\
ctl:ruleRemoveById=911100,\
ctl:ruleRemoveById=931100"
1.排除规则自身的ID最好从9900001开始,避免与其它的规则ID冲突。
2.排除规则不会写没关系,只要能找到误报的规则ID和详情,后面的事交给AI就行了,AI会帮你写排除规则。
误报的规则ID,可以通过这个命令查询:
cscli alerts list
找到ID后,再用这个命令查看详情:
cscli alerts inspect 24705
会输出类似下面这样的内容:
################################################################################################
- ID : 24705
- Date : 2026-08-14T04:26:51Z
- Machine : 33229323947d41878f3730daae8f8f340mkPL0rvRql9cJd3
- Simulation : false
- Remediation : false
- Kind : waf
- Reason : anomaly score block: anomaly: 8,
- Events Count : 5
- Scope:Value : Ip:130.12.180.77
- Country : US
- AS : Railnet LLC
- Begin : 2026-08-14T04:26:50Z
- End : 2026-08-14T04:26:50Z
- UUID : edf7d1f7-3d6f-41c1-99e8-b55a64aea6ef
- Context :
╭───────────────┬──────────────────────────────────────────────────────────────╮
│ Key │ Value │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ ja4h │ ge11nn010000_b8bcd45ac095_000000000000_000000000000 │
│ matched_zones │ REQUEST_HEADERS.Host │
│ matched_zones │ REQUEST_BASENAME │
│ matched_zones │ TX.extension │
│ method │ GET │
│ msg │ Host header is a numeric IP address │
│ msg │ URL file extension is restricted by policy │
│ name │ native_rule:920350 │
│ name │ native_rule:920440 │
│ target_uri │ /config.php.bak │
│ user_agent │ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 │
│ │ (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 │
╰───────────────┴──────────────────────────────────────────────────────────────╯
触发的规则ID是920350和920440,触发的URI是/config.php.bak,你直接把这些内容全部复制给AI,让AI写排除规则就行了,当然我这里只是演示,这并不是一个真正的误报。
建议每次添加或者修改规则后,先检查一遍有无错误:
crowdsec -t
没问题再重载配置:
systemctl reload crowdsec
荒岛

















