使用 AWS WAF 阻止 IP,以便只有连接到 *** 的用户才能访问 CloudFront [关闭]

Posted

技术标签:

【中文标题】使用 AWS WAF 阻止 IP,以便只有连接到 *** 的用户才能访问 CloudFront [关闭]【英文标题】:Blocking IP's using AWS WAF so that only users connected to a *** can access CloudFront [closed] 【发布时间】:2019-03-29 21:40:55 【问题描述】:

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

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

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

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

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

【问题讨论】:

当您说“Open*** 网络”时,您具体指的是什么?我对 Open*** 软件非常熟悉,但这听起来像是您使用的是第三方服务。 “这是一个修改后的 IP,与我设备的公共 IP 非常相似。” 这不太可能是准确的观察结果,除非是巧合相似。 【参考方案1】:

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

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

您需要知道访问者使用的 *** 服务的所有公共 IP CIDR 块,否则您无法按 IP 进行屏蔽。

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

根据上面的评论:

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

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

AWS 在过去几周刚刚推出了CloudFront-Viewer-Address header,helps 根据您的选择解决了这个问题。

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

【讨论】:

以上是关于使用 AWS WAF 阻止 IP,以便只有连接到 *** 的用户才能访问 CloudFront [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AWS redshift 阻止了我的 IP

Amazon AWS Elastic Beanstalk - 连接到 mongodb

使用 IP 地址连接到 AWS EC2

使用私钥和主机 IP 连接到 AWS EC2 实例

将域名连接到 AWS EC2

无法将R连接到AWS中的Bitnami服务器中托管的mysql