要拒绝除 之外的所有请求*.example.com
,请使用 WAF:
创建一个针对Header的字符串匹配条件-标题 - 匹配类型Ends with和值-- no在开头。配置 WAF 以阻止不符合条件的请求(“主机头以字节结尾”)。Host
.example.com
*
.example.com
https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-string-conditions.html
要在不*.example com
使用 WAF 的情况下拒绝除Application Load Balancer之外的所有请求甚至更容易……您只需要求平衡器阻止所有请求,在此之前处理.*.example.com
首先,创建一个与 Host 标头匹配的新侦听器规则(与 WAF 不同,此规则的开头*.example.com
确实需要 a ),对于操作,请选择您正常的现有目标组。*
这告诉平衡器使用该目标组*.example.com
——它已经在做,但这一步不是多余的……因为下一步是必需的:
将侦听器的默认侦听器规则操作更改为Return fixed response。将状态代码设置为 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 在遇到阻止规则后对其进行处理。