最近,一个名为“slowloris”的剧本引起了人们的关注。slowloris 所做的基本概念并不是新的攻击,但鉴于最近的关注,我发现针对我们的一些 Apache 网站的攻击略有增加。
目前似乎没有任何 100% 的防御措施。
我们(到目前为止)确定的最佳解决方案是增加 MaxClients。
这当然无非是增加了对攻击者电脑的要求,并没有真正100%保护服务器。
另一份报告表明,在 Apache 服务器前使用反向代理(例如 Perlbal)有助于防止攻击。
使用 mod_evasive 限制来自一台主机的连接数并使用 mod_security 拒绝看起来像是由 slowloris 发出的请求似乎是迄今为止最好的防御。
ServerFault上有没有人遇到过这样的攻击?如果是这样,您采取了哪些措施来保护/预防它?
注意:这个问题是针对 Apache 服务器的,因为据我了解,Windows IIS 服务器不受影响。
我经历过这样的袭击……在仲夏(6 月 23 日),你应该在乡下喝啤酒:>
我把我的 Apache 放在Varnish后面,它不仅可以防止慢病毒,还可以加速 Web 请求。
另外,
iptables
帮助了我:此规则将一台主机限制为与端口 80 的 20 个连接,这不应影响非恶意用户,但会使一台主机无法使用 slowloris。
mod_antiloris,就这么简单。
如果你所有的 apache 模块都是线程安全的,slowloris 可以简单地通过切换到事件或工作 MPM 来解决。参考:这里
现在似乎没有什么可以限制服务器上每个 ip 的最大并发连接数了。
您可以尝试一个用户补丁。它根据服务器的负载修改超时,但考虑到它的状态,你可能不想在生产机器上使用它,没有一些认真的测试。看看这里。
基于 iptable 的防火墙应该保护您免受来自 1 个 ip 的多个连接。
如果这对其他人有帮助,您有时可以使用 Apache 2.2.15 或更高版本通过以下配置解决此问题:
更多信息在这里:https ://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html