通过负载均衡器过滤 *.my-site.com/ 流量并撤销其余流量



我有一个网站,人们通过使用分配给他们的特定网址(如user1.my-site.comuser2.my-site.com(来访问该网站。用户共享相同的基本服务器,我想限制不需要的流量。我的目标是,如果任何网址不匹配*.my-site.com/它不应该访问我的服务器。

我已经查看了使用负载均衡器转发特定流量,但看起来它仍然会击中我的服务器。

我查看了 WAF 字符串匹配,我可能错过了一些东西,但我没有看到如何过滤与*.my-site.com/模式不匹配的流量

我希望有一种方法可以过滤通过 AWS 中的应用程序负载均衡器的流量,这样我只能允许来自起始 url 为*.my-site.com/的主机的流量。但是我看到在 url 的第一/之后只有字符串匹配。

要使用 WAF 拒绝除*.example.com之外的所有请求,请执行以下操作:

针对标头(Host标头(创建字符串匹配条件,匹配类型为"结尾为">,值为.example.com- 开头没有*。 将 WAF 配置为阻止与条件不匹配的请求("主机标头以字节.example.com结尾"(。

https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-string-conditions.html


在不使用 WAF的情况下拒绝应用程序负载均衡器中除*.example com之外的所有请求更加容易......您只需要要求平衡器阻止所有内容,在此之前有一个例外 处理*.example.com.

首先,创建一个与 Host 标头*.example.com匹配的新侦听器规则(与 WAF 不同,此规则在开始时确实需要一个*(,然后对于操作,选择正常的现有目标组。 这告诉平衡器使用该目标组进行*.example.com- 它已经在这样做了,但这一步不是多余的......这是必需的,因为下一步:

将侦听器的默认侦听器规则操作更改为返回固定响应。 将状态代码设置为 403,将内容类型设置为text/plain,将消息正文设置为通用内容,如ohai, blocked u.(或者尝试Access Denied,或者如果您愿意,可以使用其他代码,例如带有"服务不可用"消息的 503...从技术上讲没关系(。

您可以使用固定响应操作来删除客户端请求并返回自定义 HTTP 响应。您可以使用此操作返回 2XX、4XX 或 5XX 响应代码和可选消息。

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#fixed-response-actions

任何与您的域不匹配的请求都将落入默认侦听器规则,并收到静态错误响应。


这些配置都不会向您的服务器发送任何流量,以请求无效域。

在任一配置中,ALB 日志仍将包含被阻止的请求。 WAF 不会阻止流量到达 ALB,它只是阻止 ALB 在遇到阻止规则后处理它。

最新更新