Ec2拒绝服务:从DOS攻击中保护基于云的网站

我如何准备我的网站基础设施运行在一个EC2实例对DOS攻击? 我用nginx作为反向代理运行apache

你不能阻止DOS攻击,你只能缓解它们。

  • 保持一个小的攻击面。 closures你没有使用的服务,阻止只需要从特定位置访问的端口的访问,确保你的守护进程在系统资源不足的情况下,有多less线程运行,以及如何处理。
  • 监控stream量。 知道攻击什么时候开始,因为你得到了关于stream量或资源负载峰值的通知。 注意当你的SSH守护进程或其他安全端口被扫描。 注意请求的重复模式。 当事情失灵时,能够随时深入地分析它们,但始终保持一个脉冲。
  • 尽快躲避或拦截任何交通组成的攻击。 找出一种方法来指纹攻击并遏制这些types的请求。 优先考虑的服务,如果你必须击落低优先级的服务。 淹没并服务于CDN的所有事物,直到海岸线清晰。

首先,您需要区分 “拒绝服务(DoS)”攻击和“分布式拒绝服务(DDoS)”攻击。

由于您的问题是关于DoS的,您通常通过以下方式防范DoS攻击:

  • 保持您的操作系统,networking服务器,邮件服务器等更新,以便没有任何众所周知的远程DOS攻击的底层操作系统和服务。

  • 对自己的webapp代码进行安全审计,并为自己的webapp代码设置安全的开发实践。 你想确保没有任何远程崩溃/远程资源匮乏/缓冲区溢出/等攻击你自己的webapp代码。

  • Caleb提到了一个小的“攻击面”。 尽可能less的服务应对互联网stream量。 有一个默认的拒绝所有规则的防火墙,并且只打开需要的端口(Amazon EC2的“安全组”可以为你做这个 )。

为了提高DoS攻击的安全性,您可以做的事情几乎是无限的。 真正的诀窍是对你应该做的事情做出正确的判断。 我上面的列表是一个合理的出发点,但是如果你愿意的话,你可以学到更多关于这个话题的信息。 Security.stackexchange.com不是一个不好的地方开始。

我一直在考虑使用CloudFlare 。 所有的交通都通过他们路由,他们注意到恶意的请求,并阻止他们。 主要卖点是因为他们在监视来自各种来源的不好的stream量,所以他们可以在你自己能够做到之前发现潜在的威胁。

这似乎是build立自己的基础设施的一个非常经济有效的select,但我不确定是否通过第三方路由我的所有stream量会减慢速度。

您可能无法完全防范DDoS,最好的办法是将DDoS攻击者尽可能靠近源头。 我不知道有很多产品可以做到,但是这篇文章描述了一个免费的产品。

防止第二方基础设施(如EC2)上的DDoS / DoS攻击是一个失败的原因。 单个EC2实例将无法处理任何forms的攻击。

如果您认真对待您的业务,我会build议与提供商联系,以便将您的stream量代理过滤到实际目的地:

例如: http : //www.gigenet.com/ddos-protection.html