繁体   English   中英

使用 AWS WAF 阻止 IP,以便只有连接到 VPN 的用户才能访问 CloudFront

[英]Blocking IP's using AWS WAF so that only users connected to a VPN can access CloudFront

目标:使用 AWS WAF 过滤掉到达 CloudFront 的流量,以便只有连接到 OpenVPN 网络的用户才能访问 Web 应用程序。

OpenVPN 将任何连接的用户分配到 172.xx.yyy.z/a 网络范围内的 IP。
因此,我通过 WAF 规则将此范围列入白名单到 Web ACL,并将任何其他 IP 列入黑名单。
但是,我无法访问该站点。

查看 CloudWatch,很明显这是因为 VPN 分配的 IP 实际上并未用于访问 Web 应用程序。 这是一个修改后的 IP,与我设备的公共 IP 非常相似。

据我所知,我无法确定这些“自定义”IP 的范围。 鉴于此,我如何确保只有 VPN 连接的用户才能访问该站点?

我错过了什么重要的事情吗? 任何解决此问题的帮助表示赞赏。

谢谢!

172.16.0.0/12 IP地址是私有地址 (172.16.0.0-172.31.255.255)并且不能在公共Internet上路由。

如果您引用的IP在此范围内,则这是专用网络上的地址,即VPN隧道。 VPN远端的设备将具有Internet访问权限,并将具有公共IP地址(可在公共Internet上路由)以及CloudFront看到的内容。

您需要了解访问者使用的VPN服务的所有“公共IP CIDR”阻止,否则您将无法按IP阻止。

虽然您可以通过HTTP标头进行限制。 如果您检查通过的连接(没有WAF),则可以从请求中学习。

这是一个“好的” - 或者足够好的解决方案,当然总比没有好。 我不知道谁投了反对票,但我明白为什么。

请注意,最好在内部路由流量

根据上面的评论:

听起来您正在使用 3rd 方服务。

这似乎是因为 VPN 用户正在访问资源的外部地址(通过 CloudFront 或其他方式),并且该外部地址可以通过第三方(如 Cloudflare)解析或通过 AWS 服务本身进行屏蔽。 它可能是通过 AWS 服务(所以技术上不是“第三”方)但结果是相同的 => 掩码寻址。 我相信这就是 OP 指出的问题存在的原因。

AWS 在过去几周刚刚引入了CloudFront-Viewer-Address header ,它有助于根据您的选择解决该问题。

我建议(强烈)不要使用公共 IP 作为 VPN 网络的出口节点,而是研究改进 VPN 和相关资源的路由,以便“内部”流量不会通过引入或改进您的路由并转向主要基于 VPC 的方法。 或许可以从亚马逊对 VPC 的介绍开始。

希望这可以帮助! (某人);)

最终的解决方案是确保所有流量都被强制通过OpenVPN。

这意味着连接到VPN的任何人都将拥有分配给VPN服务器的公共IP。

因此,该IP是唯一允许通过WAF访问该站点的IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM