httpd 和 mod_security 符合 OWASP 的 dos 规则

httpd 和 mod_security 符合 OWASP 的 dos 规则

我正在尝试在我的 httpd Web 服务器上设置 mod_security。我已遵循基本步骤

yum install mod_security
  1. modsecurity_crs_10_setup.conf/etc/httpd/modsecurity.d
  2. 我把 owasp dos 规则放在/etc/httpd/modsecurity.d/activated-rules
  3. 我检查过/etc/httpd/conf.d/mod_security.conf包括这2个.conf
  4. 我已经检查过其中/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 规则,则上面有一行告诉您要执行此操作。

相关内容