ALB默认规则最佳实践:如何防范IP直连触发默认规则?
解决ALB通过IP访问触发默认规则的最佳实践
针对你遇到的ALB被直接IP访问(含爬虫)触发默认规则的问题,以下是经过验证的最佳解决方式和实践:
核心解决方案:修改默认规则为拒绝请求
你提到的思路完全正确,这是最直接有效的方式:
- 将ALB的默认规则(优先级最低的最后一条规则)的动作改为「返回固定响应」,状态码选择
403 Forbidden,响应内容可设置为Direct IP access is not allowed这类明确提示。 - 确保所有业务规则都通过
Host头精确匹配对应域名(例如Host equals example.com、Host equals app.example.com),避免模糊匹配导致合法请求被拦截。
进阶增强方案
如果需要更严格的防护,可结合以下手段:
1. 搭配WAF拦截恶意请求
如果使用云厂商的WAF服务(如AWS WAF),可以创建规则提前拦截直接IP访问:
- 配置WAF规则组,包含两个匹配条件:
- 请求的
Host头等于ALB的公网IP - 请求无
Host头或Host头为空
- 请求的
- 对匹配上述条件的请求执行「阻止」动作,流量在到达ALB前就被拦截,减少ALB负载同时防御扫描。
2. DNS层面减少IP暴露
- 业务域名全部使用CNAME记录指向ALB的官方域名(而非A记录指向IP),降低IP被爬虫或恶意用户获取的概率。
- 避免在公开文档、代码中硬编码ALB的公网IP,减少IP泄露途径。
最佳实践要点
- 规则顺序检查:确保业务规则优先级高于默认规则,默认规则始终作为兜底的拒绝动作。
- 验证测试:用命令测试直接IP访问和非法域名访问,确认返回403;同时验证所有合法域名的正常访问:
# 测试直接IP访问 curl http://<ALB_PUBLIC_IP> # 测试伪造Host头为IP的访问 curl -H "Host: <ALB_PUBLIC_IP>" http://<ALB_PUBLIC_IP> - 监控告警:配置云监控(如CloudWatch),监控ALB的403响应次数,出现异常激增时及时排查是否有扫描或配置错误。
内容的提问来源于stack exchange,提问作者smoreno
相关产品推荐
相关产品推荐

