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


32

最近,称为“ slowloris”的脚本已引起关注。slowloris的作用的基本概念不是新的攻击,但是鉴于最近的关注,我发现针对我们的某些Apache网站的攻击有所增加。

目前看来,对此没有任何100%的防御力。

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

当然,这无非是增加了对攻击者计算机的要求,实际上并没有100%保护服务器。

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

使用mod_evasive限制来自一台主机的连接数量,并使用mod_security拒绝看起来像是slowloris发出的请求,这到目前为止是最好的防御措施。

ServerFault上是否有人遭受过此类攻击?如果是这样,您采取了什么措施来防御/预防它?

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

Answers:


22

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

我将我的Apache放在Varnish后面,这不仅可以防止虫害,而且可以大大加速Web请求。

另外,iptables对我有帮助:

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

此规则将一台主机限制为与端口80的20条连接,这不应影响非恶意用户,但会使一台主机无法使用慢速报警。


4
iptables规则为+1。

1
只是抬起头。“开箱即用”,如果清漆收到cookie,则不缓存页面。您需要执行一些自定义配置来解决此问题。示例可在其站点上找到,并且易于实现。
David David

Varnish的编程性很强,因此您可以对其进行配置以查看发生了什么并对其进行处理。但是,我认为通过将代理放在apache前面,您只需将问题从Web服务器转移到代理。问题仍然存在,只是在另一个地方。连接/端口仍将用完。我将从列出的iptables规则(或与您的防火墙等效的规则)开始,然后查看代理。
David David

1
sloworis攻击的问题仅限于apache的多线程模型(以及其他使用类似模型的其他Web服务器)。清漆应该能够生存。
Cian


3

如果您所有的apache模块都是线程安全的,那么只需切换到事件或工作程序MPM,就可以消除慢速状态。参考:这里


0

现在看来,没有更多的事情可以限制服务器上每个ip的最大并发连接数。


0

您可以尝试使用一个用户补丁程序。它根据服务器承受的负载来修改超时,但是考虑到服务器的状态,如果没有进行认真的测试,您可能不希望在生产计算机上使用它。在这里看看


0

基于iptable的防火墙应保护您免受来自1 ip的多个连接的攻击。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.