11

我们通常将 IP 地址列入黑名单iptables。但在 Amazon EC2 中,如果连接通过 Elastic Load Balancer,远程地址将被负载均衡器的地址替换,从而变得iptables无用。对于 HTTP,显然找出真正远程地址的唯一方法是查看 HTTP 标头HTTP_X_FORWARDED_FOR。对我来说,在 Web 应用程序级别阻止 IP 不是一种有效的方法。

在这种情况下防御 DoS 攻击的最佳实践是什么?

在这篇文章中,有人建议我们可以将 Elastic Load Balancer 替换为 HAProxy。但是,这样做有一些缺点,我正在尝试看看是否有更好的选择。

4

5 回答 5

3

我想你已经描述了所有当前的选项。您可能想加入一些 AWS 论坛主题以投票支持解决方案 - Amazon 工程师和管理层愿意接受有关 ELB 改进的建议。

于 2010-04-30T01:34:30.400 回答
2

如果您使用 VPC 而不是 EC2-classic 部署 ELB 和实例,则可以使用安全组和网络 ACL 来限制对 ELB 的访问。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/USVPC_ApplySG.html

于 2013-10-30T12:40:46.243 回答
1

在反向代理后面运行应用程序服务器是很常见的。您的反向代理是可用于在流量到达您的应用程序服务器之前添加 DoS 保护的层。对于 Nginx,您可以将速率限制模块视为可以提供帮助的东西。

于 2012-05-25T19:43:56.063 回答
0

您可以设置一个 EC2 主机并自己在那里运行 haproxy(这就是亚马逊正在使用的东西!)。然后您可以在该系统上应用您的 iptables-filters。

于 2013-10-30T12:06:59.660 回答
0

这是我为那些希望通过 apache、ELB 和 ACL 在 aws 上使用 Fail2Ban 的人制作的工具:https ://github.com/anthonymartin/aws-acl-fail2ban

于 2016-09-19T16:17:46.203 回答