我正在尝试在我的 httpd Web 服务器上设置 mod_security。我已遵循基本步骤
yum install mod_security
- 我
modsecurity_crs_10_setup.conf
把/etc/httpd/modsecurity.d
- 我把 owasp dos 规则放在
/etc/httpd/modsecurity.d/activated-rules
- 我检查过
/etc/httpd/conf.d/mod_security.conf
包括这2个.conf
- 我已经检查过其中
/etc/httpd/httpd.conf
包含该/etc/httpd/conf.d
文件夹。
当我启动 http 并签入时,/var/log/httpd
我可以看到它modsecurity_auditlog
已创建并且记录了所有错误(5x 和 4x)
--b7148938-H--
Apache-Handler: proxy-server
Stopwatch: 1419172908440055 2294 (- - -)
Stopwatch2: 1419172908440055 2294; combined=242, p1=98, p2=8, p3=0, p4=1, p5=84, sr=32, sw=51, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.8.0 (http://www.modsecurity.org/); **OWASP_CRS/2.2.9.**
Server: Apache/2.2.29 (xxx)
Engine-Mode: "ENABLED"
然后我启动了低轨道离子炮,并向我的索引页发送了 5 分钟的垃圾邮件。没事了。我没有提到服务器受到 DOS 攻击(我检查了 modsecurity 审核日志和 http 错误日志。)
为了测试一下,我修改了 owasp 中的变量.conf
(我有一个非常低的阈值和较小的突发时间片)
#SecAction \
"id:'900015', \
phase:1, \
t:none, \
setvar:'**tx.dos_burst_time_slice=10'**, \
setvar:'**tx.dos_counter_threshold=5**', \
setvar:'tx.dos_block_timeout=600', \
nolog, \
pass"
但还是什么都没有。我的IP还没有被封。
我错过了什么吗?
答案1
您需要从您为规则 900015 引用的代码片段中的 #SecAction 中删除 #。如果使用 DoS 规则,则上面有一行告诉您要执行此操作。