自动阻止 AWS 中的 DOS 攻击



我想知道保护部署在 AWS 云上的 http 服务器免受 DOS 攻击
的最佳和最简单的解决方案
是什么

我知道可以为此目的打开AWS高级盾牌,

但是它太贵了(每月3000美元(
https://aws.amazon.com/shield/pricing/

系统架构

HTTP 请求 -> 应用程序负载均衡器 -> EC2

  • Nginx服务器已安装在此计算机上
  • Nginx服务器配置了速率限制
  • 当从一个IP发送太多请求时,Nginx服务器使用429代码进行响应
  • Nginx服务器正在生成日志文件(访问.log,错误.log(
  • AmazonCloudWatchAgent 已安装在此计算机上
  • AmazonCloudWatchAgent 侦听日志文件
  • AmazonCloudWatchAgent 将更改从日志文件发送到特定的 CloudWatch Log 组
  • 来自所有 EC2 机器的日志都集中到位(CloudWatch 日志组(


我可以配置 CloudWatch Logs 指标筛选条件,
以便在一个 IP 号码发生过多 429 请求时向我发送警报
这样,我可以手动阻止网络 ACL 中的特定 IP,并
切断来自较低网络层中错误 IP 编号的所有请求,
并保护我的 AWS 资源不被耗尽

我想以某种方式自动执行此操作 最
简单,最干净的方法是什么?

请注意,根据 AWS Shield 定价文档:

AWS

Shield Standard 为所有 AWS 客户提供保护,使其免受 常见、最常发生的网络和传输层 DDoS 针对您的网站或应用程序的攻击,无需额外 负责。

有关 DDoS 缓解的更全面讨论,请参阅:

  • AWS 上的拒绝服务攻击缓解
  • AWS DDoS 弹性最佳实践

没有一种直接的方法可以阻止DDOS进入您的基础设施。但是,您可以遵循一些技术和最佳实践来至少保护基础结构。DDOS攻击可以通过同时分析和修补来阻止它。

您可以考虑使用下面列出的外部服务来在一定程度上阻止 DDoS:

云耀斑:https://www.cloudflare.com/en-in/ddos/

Imperva incapsula: https://www.imperva.com/products/ddos-protection-services/

我在生产系统中尝试过这两种方法,它们都非常不错。Cloudflare现在处理总互联网流量的10%,他们知道好的和坏的流量。

与屏蔽相比,它们并不昂贵。您可以将其作为代码与您的基础架构集成,以便为所有服务实现自动化。

Disclaimer: I am not associated in any way with any of the services I recommended above.

最新更新