昨天,我们运行 Apache2.2 的网络服务器遭到了僵尸网络的 DDoS 攻击,导致停机时间九 (9) 小时。攻击者创建了太多“GET /”连接,导致我们的服务器 CPU 负载达到 100,并最终拒绝进一步的连接。在这些 Web 服务器前面有一台带有 haproxy 的 pfSense 机器,用于对与 Web 服务器的连接进行负载平衡。
我们尝试阻止 pfsense 的 ips,但连接仍然畅通。直到 DDoS 停止后,我们才意识到连接仍然畅通,因为它们已经建立。当我们创建规则时,我们没有指定它也应该适用于已建立的连接。由于附加已完成,我们仍然不知道这是否会起作用。
我们在 Apache 上实施了 modsecure,但我们意识到由于 X-Forwarded-For,它无法按预期工作。Modsecure 可以正确识别 ip,但当需要阻止时,它会拒绝负载平衡器的 ip(需要安装 mod_remoteip)。当我们在网络服务器上使用 mod_evase 时,攻击已经结束。
我做了一些关于 DDoS 对策的功课,但我仍然有一些问题无法自己回答。
1)您能否在 Layer4 级别阻止来自 pfSense/frontend 的“GET /”请求,以便连接不会到达后端?
我看到有可能对 IP 的连接进行速率限制,但是当攻击者创建单个连接(保持活动)然后通过此连接发送所有“GET”请求时,这会有帮助吗?
2)最好在前端(例如防火墙 - 负载均衡器)还是后端阻止此类攻击?
答案1
您将无法看到来自第 4 层的“GET /”。这仅在第 7 层可用。
最好尽可能远离后端阻止攻击。越早缓解攻击越好。您希望它消耗尽可能少的资源。如果您可以在负载平衡器处阻止它,那就太好了!在防火墙处,那就更好了!最好完全阻止它进入您的网络。
僵尸网络可以轻易破坏您的互联网链接。如果有人真的想搞垮您,您将需要外部缓解措施。