如何最好地防御针对 Apache Web 服务器的“slowloris”DOS 攻击?

如何最好地防御针对 Apache Web 服务器的“slowloris”DOS 攻击?

最近,一个名为“slowloris”的脚本引起了人们的关注。slowloris 的基本概念并不是新的攻击,但鉴于最近的关注,我发现针对我们一些 Apache 网站的攻击略有增加。

目前似乎还没有任何可以 100% 防御此种情况的方法。

我们确定的最佳解决方案(到目前为止)是增加 MaxClients。

这当然只不过增加了对攻击者的计算机的要求,并且实际上并不能 100% 地保护服务器。

另一份报告表明,在 Apache 服务器前使用反向代理(如 Perlbal)可以帮助防止攻击。

使用 mod_evasive 来限制来自一个主机的连接数,并使用 mod_security 来拒绝看起来像是由 slowloris 发出的请求,似乎是迄今为止最好的防御措施。

ServerFault 上有谁经历过这样的攻击吗?如果有,你们采取了哪些措施来防御/预防它?

注意:这个问题针对的是 Apache 服务器,因为据我了解,Windows IIS 服务器不受影响。

答案1

我经历过这样的袭击......在盛夏(6 月 23 日),你应该在乡下喝啤酒:>

我把我的阿帕奇放在后面,不仅可以防范 slowloris,还可以大大加快网络请求速度。

另外,iptables帮助了我:

iptables -I INPUT -p tcp --dport 80 \
         -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP

此规则限制一个主机与端口 80 的连接数为 20 个,这不会影响非恶意用户,但会导致 slowloris 在一个主机上无法使用。

答案2

mod_antiloris, 就那么简单。

答案3

如果您的所有 apache 模块都是线程安全的,则只需切换到事件或工作 MPM 即可击败 slowloris。参考:这里

答案4

您可以尝试使用用户补丁。它根据服务器的负载修改超时,但考虑到它的状态,您可能不想在未经过认真测试的情况下在生产机器上使用它。看一看这里。

相关内容