我如何准备我的网站基础设施运行在一个EC2实例对DOS攻击? 我用nginx作为反向代理运行apache
你不能阻止DOS攻击,你只能缓解它们。
首先,您需要区分 “拒绝服务(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