Apache正向代理默认不启用,需主动开启并严格按安全基线配置:关闭ProxyRequests On,仅用ProxyRemote/ProxyRemoteMatch精确放行内网白名单域名,结合IP白名单、Basic认证、禁用CONNECT、隐藏服务器标识及单独代理日志。

Apache 正向代理默认不启用,要让它只访问企业内部系统白名单,核心不是“放开代理再堵”,而是主动开启 + 精确放行 + 严格拦截。重点在于禁用开放代理行为,仅对明确列出的内网地址放行请求,其余一律拒绝。
关闭开放代理,只允许显式白名单域名
必须禁用 ProxyRequests On 的默认滥用风险,改用 ProxyRemote 或 ProxyRemoteMatch 实现“出向可控转发”:
- 在主配置或虚拟主机中关闭全局正向代理:
ProxyRequests Off - 用
ProxyRemote将所有外发请求定向到一个受控出口(如统一网关),再由网关做最终鉴权和路由ProxyRemote * https://gw.internal.corp - 更精细控制:用
ProxyRemoteMatch限定仅允许匹配白名单的域名,其他请求直接 403ProxyRemoteMatch ^https?://(hr\.internal\.corp|git\.internal\.corp|jira\.internal\.corp)/ https://gw.internal.corp - 确保未匹配的请求不会被默认转发——Apache 2.4+ 默认不处理未命中的
ProxyRemote,会返回 502 或 404;可配合ErrorDocument 403 /forbidden.html明确提示
结合 IP 白名单 + 域名双校验
即使域名合法,也需确认请求来源可信。在代理入口处叠加客户端 IP 限制:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 用
<Proxy>块包裹策略,作用于代理行为本身(不是后端服务):<Proxy "*"><br> Require all denied<br> Require ip 10.10.0.0/16 172.16.5.0/24<br></Proxy>
- 若需更高安全等级,加入 Basic 认证:
AuthType Basic<br>AuthName "Internal Proxy"<br>AuthUserFile /etc/apache2/.proxy-htpasswd<br>Require valid-user
再与 IP 规则组合:<RequireAll> Require ip ... Require valid-user </RequireAll> - 注意:
<Proxy>必须放在全局或<VirtualHost>内,不能嵌套在<Location>中
禁用 CONNECT 方法,防 HTTPS 隧道穿透
企业内网系统虽多为 HTTP,但部分服务可能启用了 HTTPS。若不禁用 CONNECT,攻击者可借代理建立隧道访问任意外部站点:
- 显式禁用:
SSLProxyEngine off
(除非你明确需要代理 HTTPS 流量,且已配置证书验证) - 屏蔽 CONNECT 请求:
<Limit CONNECT><br> Require all denied<br></Limit>
- 检查日志是否仍有
CONNECT记录:tail -f logs/access_log | grep CONNECT,发现即排查客户端误配
隐藏代理身份,避免信息泄露
内部系统不应暴露 Apache 作为代理的痕迹,防止被扫描或误判:
- 关闭服务器标识:
ServerSignature Off<br>ServerTokens Prod
- 禁用非必要模块(尤其
mod_info、mod_status、mod_proxy_ftp),只保留:mod_proxy、mod_proxy_http、mod_authz_core、mod_auth_basic - 单独记录代理日志,包含原始 Host 和目标 URL:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{Host}i %{X-Forwarded-For}i" proxy<br>CustomLog logs/proxy_access.log proxy

















