3

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

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

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

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

我错过了什么重要的事情吗?

4

3 回答 3

3

172.16.0.0/12 IP 地址是私有地址(172.16.0.0 -- 172.31.255.255),不能在公共互联网上路由。

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

您需要知道访问者使用的 VPN 服务的所有公共 IP CIDR 块,否则您无法通过 IP 阻止。

尽管您可以通过 HTTP 标头进行限制。如果您检查通过的连接(没有 WAF),您可以从请求中了解这一点。

于 2018-10-25T10:33:05.740 回答
0

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

根据上面的评论:

听起来您正在使用 3rd 方服务。“这是一个修改后的 IP,与我设备的公共 IP 非常相似。”

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

AWS 刚刚在过去几周推出了CloudFront-Viewer-Address header有助于解决该问题,具体取决于您的选择。

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

于 2021-12-14T20:42:12.740 回答
-1

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

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

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

于 2019-01-17T15:45:04.367 回答