【问题标题】:Filter *.my-site.com/ traffic through a load balancer and revoke the rest通过负载均衡器过滤 *.my-site.com/ 流量并撤消其余流量
【发布时间】:2019-09-07 06:29:07
【问题描述】:

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

我已经研究过使用负载平衡器转发特定流量,但看起来它仍然会影响我的服务器。

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

我希望有一种方法可以过滤通过 AWS 中的 Application Load Balancer 的流量,因此我只能允许来自起始 URL 为 *.my-site.com/ 的主机的流量。但我看到在 url 的第一个 / 之后只有字符串匹配。

【问题讨论】:

    标签: amazon-web-services security load-balancing server-side-attacks


    【解决方案1】:

    使用 WAF 拒绝除*.example.com 之外的所有请求:

    针对 HeaderHost 标头)创建一个 String Match 条件,匹配类型为 Ends with 和一个值的.example.com——开头没有*。配置WAF,拦截不符合条件的请求(“主机头以.example.com字节结尾”)。

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


    要在 Application Load Balancer 中拒绝除 *.example com 之外的所有请求不使用 WAF 会更容易......您只需要求平衡器阻止所有请求,但有一个例外 在此之前处理*.example.com

    首先,创建一个与主机标头*.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 在遇到阻止规则后对其进行处理。

    【讨论】:

    • 这是一个很棒的答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2021-07-19
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多