这不是询问如何阻止攻击的问题。这只是一个供任何人讨论如何预防、处理和在攻击期间保持服务器正常运行的想法的帖子。
不要讨论使用第三方软件,这是一个提出自己的想法并阅读他人想法的地方。
如果您愿意,可以发布示例。发布有关如何过滤洪水攻击的想法。发布有关如何在遭受严重 DDoS 攻击时保持服务器正常运行的想法。
答案1
在 DDOS SYN 攻击期间,我将我的网站移至第二个 IP,并让我的 ISP 在其级别阻止原始 IP。虽然这确实会因 DNS 传播而造成一些停机时间,但它确实减轻了负载并让我重新上线。在 ISP 级别阻止原始 IP 可防止 DDOS 到达我的服务器。然后发起了由合法连接组成的二次 DDOS 攻击,但数量很多。我最终修补了我的 Linux 防火墙的 iptables 以使用 ipset 来获得更好的性能,因为我阻止了数千个 IP。
攻击发生后,我测试了各种防火墙(抱歉,没有思科)。BSD 系列的 PF 及其 synproxy 标志的效果最好。与大多数在攻击期间才启动速率限制的防火墙不同,pf 及其 synproxy 阻止了防火墙上的大量连接。此外,pf 的表具有出色的查找性能,并且可以动态更新。无需重新加载。pf 还有很多用于调整性能和清理传入数据包/连接的选项。
带有 ipset 的 netfilter 性能良好,但没有 synproxy。
另一种可能性是使用基于云的托管,允许您继续向攻击投入更多带宽和硬件,以便您的客户不会感受到攻击。
真正防止 DDOS 的唯一方法是让您的服务器脱离互联网。但随后您必须向管理层解释为什么没有人可以看到您公司的网站。:-)
答案2
拒绝服务 (DoS) 攻击有很多种类型,没有一种单一的解决方案可以解决这个问题。Web 应用程序防火墙 (WAF) 可用于保护服务器免受分布式拒绝服务 (DDoS) 攻击产生的大量流量。这些攻击通常包含大量相同类型的请求。WAF 可以限制甚至阻止发送大量 http 请求的特定用户。ICMP ping 是另一种常见的 DDoS 类型,如果您使用数据包过滤防火墙阻止传入的 ICMP,那么这将减轻攻击。
但最终,随着流量的增加,您周围的基础设施将开始崩溃,您的服务器将瘫痪。互联网主干路由器已被蠕虫产生的 DDoS 攻击堵塞。最近,UltraDNS 遭受了 DDoS 攻击,导致 Amazon.com 瘫痪:http://www.securityfocus.com/brief/1053
Finley,不需要大量的数据包就能搞垮一台服务器。拒绝服务攻击可能只需要 1 个畸形数据包。缓冲区溢出可能会导致服务器崩溃,甚至更糟的是,让黑客完全访问您的服务器。确保您的软件是最新的。
答案3
有些公司专门提供这种服务。他们拥有巨大的可用带宽,因此他们可以承受冲击并仅过滤对您的服务器的合法请求。
更新:如果您真的想自己尝试一下,那么首先要考虑这样一个事实:存在持续带宽为 50-80Gbit/秒的攻击。而且每年的攻击规模都越来越大。今年发生 100 多次攻击我一点也不惊讶。
现在关于防御:
- 任何低于应用层的攻击都必须在边界处阻止(最好是在 ISP 边界处)。投资购买好的防火墙 - CPU 负载会很大,因此越强大越好。
在你应用受到攻击 - 尝试以攻击者的身份思考 - 最薄弱的部分是什么?攻击者将攻击只需要将几个字节上传到您的服务器但在服务器端执行大量繁重工作的页面(例如,使用通配符进行任何类型的搜索等)。无需身份验证即可访问的页面应首先进行审查。尝试提出一个解决方案,让您可以快速关闭此功能,而无需关闭整个网站。
有些攻击仅来自特定国家(例如中国、俄罗斯、韩国)。您可以为路由器准备 ACL,以阻止属于特定国家的所有网络块。但要小心,在大规模攻击下,您的防火墙很可能会因 CPU 负载而陷入困境。
祝你好运!
答案4
mod_evasive如果你正在运行 Apache Web 服务器,这是你可以采取的最好的服务器端防范措施之一 -http://www.think-security.com/protect-your-apache-web-server-with-mod_evasive/