9

使用网络服务器(apache 或 nginx),我能够找到x-forwarded-for标头并找到客户端 IP,而不是 ELB 的 IP。

我可以使用相同的方法IPTables来阻止某些 IP 地址吗?

我可以在网络服务器级别做到这一点。但是,我认为这有点低效,我希望我可以使用 IP Tables 或类似的东西来实现这一点?

4

2 回答 2

13

自 7 月 30 日起,ELB 支持代理协议。正如AWS 论坛中此线程的结尾所述:

Elastic Load Balancing (ELB) 现在支持代理协议版本 1。此功能允许您在使用 TCP 负载平衡时识别客户端的连接信息,从而进一步了解您的应用程序的访问者。拥有此信息可用于分析流量日志、收集连接统计信息、故障排除或管理 IP 地址白名单。

您必须在 ELB 中启用代理协议

开发者指南有更多关于代理协议的信息。

于 2013-09-03T07:49:00.660 回答
8

您不能使用 iptables 执行此操作,因为 iptables 只会看到弹性负载均衡器的 IP 地址,因为 ELB 是与您的实例建立连接的对象。

使用 Web 服务器阻止某些 x-forwarded-for 值并不是特别低效,但是如果您想控制谁可以通过 IP 地址访问您的 ELB,也可以通过附加到 ELB 的安全组来完成。


更新:您的评论部分正确,因为至少到目前为止,EC2“经典”上的 ELB 不支持入站安全组或网络访问控制列表,但 VPC 上的 ELB 支持。

Q:Elastic Load Balancer前端可以配置安全组吗?

如果您使用的是 Amazon Virtual Private Cloud,您可以为 Elastic Load Balancer 的前端配置安全组。—  http://aws.amazon.com/ec2/faqs/#ELB6

当您需要允许一组相对较小的特定 IP 地址范围时,最容易使用安全组。如果您想允许大多数但阻止少数,那么VPC 网络访问控制列表是更简单的方法。

于 2013-08-31T13:31:50.310 回答