
Apache 负载均衡本身不直接防御应用层攻击(如 SQL 注入、XSS),但它作为第一道反向代理网关,能通过合理配置显著提升后端应用的安全纵深。关键不是“替代 WAF”,而是构建可信入口层,阻断恶意流量、隐藏后端细节、控制通信行为。
启用必要模块并关闭非安全代理模式
Apache 默认可能开启正向代理(ProxyRequests On),这会把服务器变成开放代理,极易被滥用。必须显式禁用:
- 在主配置或虚拟主机中加入
ProxyRequests Off - 仅启用必需模块:
mod_proxy、mod_proxy_http、mod_proxy_balancer、mod_slotmem_shm(用于 balancer-manager 状态共享) - 禁用高风险模块(如
mod_proxy_ftp、mod_dav),减少攻击面
严格限制负载均衡管理界面访问/balancer-manager 是调试利器,但也是高危入口:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 必须限制为仅本地访问:
<location> SetHandler balancer-manager Require local </location> - 生产环境建议彻底注释或删除该段配置,避免任何远程访问可能
强制后端通信加密与身份验证
即使内网,也不应默认信任后端:
- 后端服务若支持 HTTPS,优先使用
https://协议注册BalancerMember,并配合SSLProxyVerify require和SSLProxyCACertificateFile验证证书 - 若用 HTTP,可通过
ProxySet添加secure=on标识可信链路,并在后端应用层校验X-Forwarded-Proto: https和X-Forwarded-For头的合法性 - 禁止后端直接暴露公网端口,防火墙只允许 Apache 服务器 IP 访问后端服务端口(如 8080)
过滤与重写可疑请求头,防止头注入和绕过
利用 mod_headers 和 mod_rewrite 主动清理:
- 移除客户端伪造的敏感头(如
X-Forwarded-Host、X-Forwarded-Scheme):RequestHeader unset X-Forwarded-Host RequestHeader unset X-Forwarded-Scheme
- 拒绝含非法字符或异常长度的
User-Agent、Referer:RewriteCond %{HTTP_USER_AGENT} "sqlmap|nikto|nmap|wget.*-r" [NC] RewriteRule ^ - [F] - 强制设置
X-Forwarded-For为真实客户端 IP(需确保 Apache 前无其他代理):RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 127.0.0.1 192.168.0.0/16
启用健康检查并隔离异常节点
被动探测可防止故障节点持续接收请求,间接降低被利用风险:
- 为每个
BalancerMember添加ping=5(每 5 秒发 OPTIONS 探测)和failonstatus=500,502,503,504 - 设置
timeout=5、retry=60,快速下线响应异常或超时的后端实例 - 配合
status=+H标记热备节点,避免故障期间流量打到未就绪服务上
不复杂但容易忽略。










