AWS Elastic Beanstalk服务器收到负载均衡IP的异常HTTP请求求助
解决AWS Elastic Beanstalk负载均衡器关联IP发送异常HTTP请求的问题
一、先确认请求的真实来源
这些请求的IP属于172.31.x.x(VPC内网段),但不一定是负载均衡器本身发起:
- 检查CloudWatch日志中的
user_agent字段:合法ELB健康检查请求的User-Agent固定为ELB-HealthChecker/2.0,若异常请求的User-Agent不同,说明是其他内网节点通过负载均衡器转发的请求,或是EC2实例被入侵后发起的扫描。 - 查看
x-forwarded-for请求头:如果存在非内网IP,说明是外部恶意请求通过负载均衡器透传进来(可能是负载均衡器安全组未配置正确的访问限制)。
二、拦截异常请求的具体方案
1. 通过负载均衡器监听器规则拦截
如果使用应用负载均衡器(ALB)或网络负载均衡器(NLB),可直接在监听器中配置路径匹配规则拒绝恶意路径:
- 登录AWS控制台,进入目标负载均衡器的监听器页面,添加规则:
- 第一条规则:条件设为「路径匹配
/healthz」,动作选择「转发到目标组」(允许健康检查); - 默认规则:动作设为「返回固定响应(403 Forbidden)」或「拒绝连接」,拦截所有其他路径请求。
- 第一条规则:条件设为「路径匹配
- 针对特定恶意路径(如
/.env、/phpMyAdmin/*),可添加额外规则直接拒绝,优先级高于默认规则。
2. 通过EB应用服务器配置拦截
在Elastic Beanstalk中添加自定义配置文件,在服务器层面(Nginx/Apache)拦截请求:
- Nginx环境:创建
.ebextensions/nginx/conf.d/block_malicious.conf文件,内容如下:# 拦截指定恶意路径 location ~* ^/(exactarget|\.env|phpinfo|info\.php|_profiler/phpinfo) { return 444; # 直接关闭连接,不返回响应,减少日志污染 } # 处理双斜杠开头的路径 location ~* //phpMyAdmin/scripts/setup\.php { return 444; } # 拦截ASP.NET相关恶意路径 location ~* /Core/Skin/Login\.aspx { return 444; } - Apache环境:创建
.ebextensions/apache/conf.d/block_malicious.conf文件,内容如下:
部署该配置后,EB会自动将规则应用到所有EC2实例。RedirectMatch 403 ^/(exactarget|\.env|phpinfo|info\.php|_profiler/phpinfo)$ RedirectMatch 403 ^//phpMyAdmin/scripts/setup\.php$ RedirectMatch 403 ^/Core/Skin/Login\.aspx$
3. 加固VPC与安全组配置
- 检查负载均衡器的安全组:确保仅允许必要的外部IP访问,或仅开放应用所需端口(如80/443),避免恶意请求进入VPC。
- 检查EC2实例的安全组:限制内网访问,仅允许负载均衡器的安全组向EC2实例发起
/healthz路径的请求,其他内网IP的请求直接拒绝。
三、排查潜在入侵风险
如果异常请求确实来自内网其他节点:
- 检查VPC内所有EC2实例的系统日志,查看是否有异常登录、进程或脚本执行记录。
- 确认EB环境的IAM角色权限,避免攻击者通过权限提升控制EC2实例。
内容的提问来源于stack exchange,提问作者Jplus2
相关产品推荐
相关产品推荐

