缓解慢速 Loris 攻击(慢速 HTTP 请求 DDoS)

缓解慢速 Loris 攻击(慢速 HTTP 请求 DDoS)

几个星期以来,我一直受到懒猴的袭击(在一年中最糟糕的时期 [黑色星期五/网络星期一])。

这是一次高级 DDoS 攻击,我收到大量缓慢的 HTTP 请求,这些请求会在服务器日志中生成 408 错误代码(“-” 408 156 “-” “-”)。有数千个、可能数万个甚至数十万个不同的 IP。我只是不明白这是怎么可能的。我也不知道为什么我会成为攻击目标,我只有一个小网站。一周前,我以为我的主机提供商出了问题,因为突然间网站的连接变得非常慢,延迟时间为 5 秒,第二天是 8-10 秒,第三天是 15 秒;此时,我搜索了我的整个日志,发现了数十万行 408 错误代码。

我已经添加了 mod_antiloris,但它只拒绝创建 10/20+ 连接的相同 IP,而此处攻击中的 IP 最多只创建 3-4 个连接。

Mod_reqtimeout 已启用:RequestReadTimeout header=20-40,minrate=500 body=10,minrate=500(我有一个 SSL 证书)。它似乎什么也没做。

我已将 apache2.conf 超时时间从 300 设置为 60。我没有看到任何区别。

唯一能缓解攻击的方法是增加 mpm_prefork.conf 中的 MaxRequestWorkers 数量。然而,攻击只需要增加其容量即可;当然,这就是正在发生的事情:低 HTTP 请求的数量正在缓慢增加,试图再次达到我的服务器的极限。

我尝试禁用 KeepAlive:没有什么不同。

我尝试过 mod_qos,但它需要启用 mpm_worker(而不是 mpm_prefork)。据我所知,mpm_worker 会导致 php 不稳定。另外,我还没有尝试过 mod_security,它似乎更复杂。

我尝试将网站置于 Cloudflare 之后,但攻击仍在继续。似乎缓慢的请求直接发送到服务器 IP。

网上有人说在 Apache 前面使用 Nginx 反向代理可以吗?

答案1

我尝试将网站置于 CloudFlare 之后,但攻击仍在继续。似乎缓慢的请求直接发送到服务器 IP 地址。

推荐的解决方案是不允许直接访问您的网络服务器,并且只接受通过 CloudFlare CDN 发送的流量。

https://developers.cloudflare.com/fundamentals/setup/allow-cloudflare-ip-addresses/

基本上这意味着:配置基于主机的防火墙、实际防火墙、安全组甚至只是您的 Web 服务器,以禁止除属于 CloudFlare 的访问之外的所有访问。他们在此处发布其 IP 范围:https://www.cloudflare.com/ips/

答案2

在 Apache 前面使用 Nginx 作为反向代理可能会有所帮助,因为 Nginx 的架构通常更擅长处理这些类型的攻击。值得一试。您已经尝试过 mod_antiloris,但请考虑进一步优化其设置以适应较低的连接速率。调整配置以阻止连接较少的连接,如果攻击变得无法控制,请考虑更改为具有更好 DDoS 保护的托管服务提供商,,,

相关内容