【发布时间】:2011-04-15 13:51:59
【问题描述】:
为了保护自己免受 slowloris 类型的攻击,我们在 Apache 2.2.17 安装(在 Solaris 上运行,MPM 编译)上配置了 mod_reqtimeout 模块。 mod_reqtimeout 配置如下:
RequestReadTimeout 标头=10-20,MinRate=500 正文=10-20,MinRate=500
我们正在使用 OWASP http_dos_cli 工具进行测试,并且仍然能够在几秒钟内使该站点无法访问。在日志中,我们看到请求在 20 秒后被截断,然后被处理。由于 URL 引用的是实际资源,因此返回 200 状态代码。这可以防止我们的 mod_security 规则集检测 408 状态代码、收集基于 IP 的统计信息并阻止来自该 IP 的进一步请求。
知道为什么 mod_reqtimeout 会截断请求而不是丢弃它并返回 408 吗?
非常感谢!
【问题讨论】:
-
实际上,由于 httpd-vhosts.conf 文件中的 RedirectMatch 指令,Apache 正在发送 302 重定向。不过,该请求应该超时并返回 408,而不是 302。