什么是防止拒绝服务攻击的最佳技术?

目前,我一直在使用(D)DoS-Deflate来pipe理许多远程服务器上的这种情况,以及用于负载testing的Apache JMeter 。

总的来说,它一直工作得很好,虽然我想听听一些从事这种情况的专家的build议比我更长。 我确信那些在networking托pipe业务中工作的人已经有了处理这些情况的公平份额。 所以我想知道在企业环境中应对这些问题的最佳实践是什么?

    防止DDoS主要是不成为目标。 不要主机游戏服务器,赌博/色情网站,和其他事情,往往让人恼火。

    减轻DDoS攻击有两种forms:

    • 能够忽略stream量并减轻多余的负载,这在你试图通过超载你的机器而使你失望的攻击下是有用的(并且如果你得到“Slashdotted”,它也派上用场。
    • 能够拒绝您上游的滥用networkingstream量,这样它就不会阻塞您的链接并取消您的连接。

    前者有些依赖于你正在服务什么,但通常归结为caching,溢出处理(检测服务器何时“满”,并将新连接redirect到资源耗尽的“对不起”页面) ,以及请求处理的优雅降级(例如,不进行图像的dynamic呈现)。

    后者需要与上游进行良好的沟通 – 将上游的NOC的电话号码纹在眼皮内(至less在维基百科上某个地方与您的生产服务器不在同一个地方)。 ..),并了解在那里工作的人,所以当你打电话给你时,会立即得到关注,作为一个真正知道他们在说什么的人,而不仅仅是一些随机的约翰尼。

    你没有提到你有什么样的外围安全。 使用思科防火墙,您可以限制防火墙在切断它们之前的初始(半会话)数量,同时仍然允许完整的会话通过。 默认情况下,它是无限的,不提供任何保护。

    诸如Foundry ServerIron和思科ACE之类的硬件辅助负载均衡器对于处理大量主要types的DOS / DDOS攻击非常有用,但不像软件解决scheme那样可以更快地“学习”更新技术。

    一个很好的信息来源是在这个网站 。 他们仅仅提到的一个措施(值得进一步研究)是启用SYN cookie。 通过防止攻击者打开大量的“半开放”连接,试图达到每个进程允许的最大文件描述符数量,从而防止了整个类别的DoS攻击。 (见bash manpage,用'-n'选项寻找'ulimit'内build)

    免责声明:我不是DDoS保护专家。

    我认为这取决于您的预算,您的正常运行时间条件以及您或您的客户如何面对这种风险。

    基于代理的DDoS防护可能是一种select。 在大多数情况下,这不是一个便宜的select,但我认为这是最有效的。 我会问我的托pipe服务提供商的解决scheme。 RackSpace,例如,提供了这个多层缓解工具 。 我相信所有的大型主机都有类似的解决scheme。