当从负载均衡器接收数据并封装在代理协议 V2 中时,有哪些方法可以阻止特定用户 IP 地址?

当从负载均衡器接收数据并封装在代理协议 V2 中时,有哪些方法可以阻止特定用户 IP 地址?

我在 Amazon ELB 网络负载均衡器后面有几个 Web 服务器。负载均衡器将客户端数据包的源 IP 地址替换为其自己的源 IP 地址。

例如,IP 为 的客户端203.0.113.1连接到我的负载均衡器。负载均衡器将客户端流量转发到源 IP 为的 Web 服务器172.16.1.1。这使得选择性阻止客户端 IP 变得困难。

Amazon 网络负载均衡器中有两种解决方案:

  • IP 保留通过负载均衡器透明地保留 IPv4 IP,但它本身不支持 IPv6,因为 IPv6 地址仍会转换为172.16.1.1
  • 可以在负载均衡器上启用代理协议 V2,该协议将标头添加到TCP DATA包含寻址信息的字段之前。它支持 IPv4 和 IPv6,并且受我的 Apache Web 服务器支持。 IP数据包中的源IP地址仍然是172.16.1.1,但是真正的源 IPv4/6 地址位于代理协议 V2 标头内的 TCP 数据字段中

通常,我的服务器的防火墙日志由 Fail2Ban 读取,它会阻止行为不当的地址。我的问题是我不知道如何阻止使用代理协议 V2 封装的行为不当的流量,如IPTables 似乎无法直接检查代理协议 V2 标头,否则我会使用 Fail2Ban 和 IPtables 来实现此目的。

我的下一个解决方案是将 IP 地址发送到 Lambda 脚本,以阻止我的 VPC 的网络 ACL 或路由表中的 IP,但这会增加一些初始复杂性,因为这似乎是阻止流向网络负载均衡器的流量的唯一方法。

Apache、IPTables 或其他工具是否有任何简单的方法可以根据代理协议 V2 标头中找到的 IP 值动态阻止流量?

相关内容