Apache反向代理本身不是防火墙,但通过合理配置可构建轻量安全层:一关闭正向代理杜绝跳板风险;二限制HTTP方法拦截高危操作;三过滤恶意参数与请求头;四集成ModSecurity实现WAF级防护。
apache 反向代理本身不是防火墙,但通过合理组合模块与配置,能在入口层构建一道轻量、可控、零侵入的安全过滤层——关键不在“替代防火墙”,而在“前置拦截+暴露面收敛+协议净化”。
关闭正向代理,杜绝跳板风险
这是所有安全配置的底线。若未禁用,攻击者可将你的 Apache 当作开放代理扫描内网,极易触发 ISP 封控或安全审计告警。
- 在全局主配置(如 httpd.conf)中确保有:ProxyRequests Off
- 禁用宽泛的
<Proxy *>授权;如需代理权限,仅限明确路径,例如:<Proxy http://127.0.0.1:8080/api/><br> Require ip 127.0.0.1<br></Proxy>
限制 HTTP 方法,拦截高危操作
PUT、DELETE、TRACE、CONNECT、PROPFIND 等方法极少用于常规业务,却常被用于上传 Webshell、探测服务、删库等攻击。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在代理路径的
<Location>块中嵌套<LimitExcept>:<Location "/api/"><br> ProxyPass http://127.0.0.1:8080/api/<br> ProxyPassReverse http://127.0.0.1:8080/api/<br> <LimitExcept GET POST HEAD><br> Require all denied<br> </LimitExcept><br></Location>
- 全局禁用 TRACE:TraceEnable off(必须写在任意配置块外)
- 卸载 WebDAV 模块:注释掉
mod_dav.so和mod_dav_fs.so,并清理残留的<IfModule dav_module>
过滤恶意请求头、参数与路径
很多攻击藏在 URL 参数、请求体或 Header 中,Apache 可在代理前做第一道清洗。
- 启用 mod_rewrite 拦截已知危险模式:
RewriteCond %{QUERY_STRING} (union|select|script|\.env|web\.xml) [NC]<br>RewriteRule ^/admin/ - [F] - 清除客户端伪造的转发头:
RequestHeader unset X-Forwarded-For<br>RequestHeader unset X-Real-IP
再由代理层可信地重写:ProxyPreserveHost On+RemoteIPHeader X-Forwarded-For - 对敏感接口加 Referer 或 Token 校验(如管理后台):
RewriteCond %{HTTP_REFERER} !^https?://(admin\.example\.com|localhost) [NC]<br>RewriteRule ^/api/v2/admin/ - [F]
进阶:集成 ModSecurity 做规则级防护
若需 WAF 级能力(如 SQLi、XSS、路径遍历检测),建议部署 ModSecurity 作为 Apache 的模块化引擎,而非自行写复杂 rewrite 规则。
- 安装后,在虚拟主机或
<Location>中启用:SecRuleEngine On<br>SecRequestBodyAccess On<br>SecResponseBodyAccess On
- 加载 OWASP CRS 规则集,重点开启:
•REQUEST-920-PROTOCOL-ENFORCEMENT(协议规范)
•REQUEST-932-APPLICATION-ATTACK-RCE(远程命令执行)
•REQUEST-942-APPLICATION-ATTACK-SQLI(SQL 注入) - 注意:ModSecurity 应部署在代理层(即 Apache),而非后端应用前,才能覆盖所有入口流量

















