我正在使用 Amazon 的 ELB 在服务器之间进行负载平衡,
当我的网站受到机器人攻击时,一切都筋疲力尽,所以这就是问题所在
我无法使用 Amazon 的安全组来阻止 IP 地址,因为他们没有明确允许“拒绝”,因此拒绝一个 IP 就必须允许其他每个 IP 地址,这很繁琐。
我无法使用 iptables 来阻止 IP 地址,因为 ELB 会混淆公共 IP 地址并将其替换为自己的 IP 地址。
访客的实际 IP 地址只能在 X-FORWARDED-IP 中看到
答案1
我认为,除了您在 ELB 级别上描述的方法之外,没有其他方法可以实现这一点。
您可以在每个实例上使用防火墙(例如 iptables)来阻止某些 IP 地址,甚至可以为 IP 地址设置每分钟/秒的连接数限制。
这样你就可以自动阻止攻击者。
您还可以使用 Chef/Puppet 等工具将防火墙配置传播到每个实例。
答案2
我也遇到过这种情况。我一直在考虑这个问题,虽然我还没有尝试实现它,但我认为对于我们来说,答案是在应用服务器前启动一个运行专用防火墙的实例。这样,防火墙就可以看到真实的 IP 地址。我会在尝试实现它并解决遇到的任何问题后尝试更新它。
答案3
您说得对,您不能使用安全组来阻止流量。
如果您正在使用 VPC(您应该这样做),那么您可以使用 Amazon 的网络 ACL 作为防火墙。它们允许 DENY 规则,因此您可以阻止 IP 或 CIDR 块上的流量。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Security.html#VPC_Security_Comparison