您如何安全地使用 ELB 对 PROXY 协议版本 1 的支持?

Dav*_*rtz 5 proxy amazon-elb

Amazon 的Elastic Load Balancer 支持 PROXY 协议版本 1。这允许负载均衡器后面的服务器确定客户端连接的原始源 IP 地址。

但是,协议规范在第 2 节和第 5 节中明确指出,您必须以某种方式确保只有经过授权的端点才能连接到支持该协议的端口。否则,恶意用户可以直接连接到服务器,绕过代理,并发送一个 PROXY 标头,声称他们希望使用任何源 IP 地址。

我的问题是,你如何用 ELB 做到这一点?据我所知,没有可以连接到服务器的源 IP 地址的固定列表。没有办法限制端口,以便只有您的 ELB 可以连接到它。似乎任何人都可以创建一个 EC2 实例并在 ELB 代理的同一端口上直接连接到您的服务器,模拟负载均衡器,并声称从他们喜欢的任何 IP 地址进行连接。

那不可能是对的。我错过了什么?

Dog*_*ody 4

因此,您尝试仅允许从 ELB 连接到您的 EC2 实例。

您可以在管理控制台中或(像 AWS 的大多数功能一样)通过 API 执行此操作。我将定义管理控制台方法。

首先我们需要确定您的 ELB 的安全用户和名称。转到管理控制台,选择 EC2 和负载均衡器选项卡。从列表中选择您的负载均衡器,然后转到首选项中的“安全”选项卡。在这里您将看到您的源安全组。它可能是“amazon-elb/amazon-elb-sg”,但我会保留此说明,以防将来发生变化;-)

现在转到安全组菜单并选择您用于 EC2 服务器的组。添加一条新规则,其中“amazon-elb/amazon-elb-sg”(或任何您的 ELB 组)是源。确保该端口没有任何其他入站规则,尽管您仍然可以允许直接访问 ELB 未涵盖的其他端口。