Apache 代理 HTTP CONNECT 方法已启用

Apache 代理 HTTP CONNECT 方法已启用

我正在使用 Apache 作为几个不同项目的反向代理。PCI-DSS 合规性扫描显示我的 Apache 已启用 HTTP CONNECT 方法。

正如 Acunetix 网站所述 -http://www.acunetix.com/vulnerabilities/apache-proxy-http-connect-metho/

据我所知,CONNECT 被 Web 服务器用来将 SSL 隧道传输到应用程序服务器。

有什么建议我该如何解决这个问题?

否则,有人知道如果我的 Apache 的 HTTP CONNECT 方法被启用/禁用,我应该如何执行测试吗?

我对网络和配置 Apache 经验不多。如果我写了一些愚蠢的东西,请纠正我。

答案1

您只需要在使用正向代理配置时允许 CONNECT 方法,在反向代理配置中您甚至不需要启用 connect 方法。

如果您愿意,Apache 应该配置为充当“中间人”。或者称为 SSL 终止点的 SSL 卸载器,因为配置不是恶意的。

通常,apache 配置了您的公共 SSL 证书,并且 apache 转发到您的应用服务器的请求是通过纯 HTTP 进行的。如果您认为自己的 LAN 存在敌意,您也可以通过 HTTPS 进行转发,但 apache 将建立第二个 HTTPS 连接。

<VirtualHost 1.2.3.4:443>
  ServerName www.example.com
  SSLEngine on
  SSLCertificateFile /some/path/to/public.cert
  SSLCertificateKeyFile /some/path/to/key
  ProxyPass /app http://appserver.int.example.com/app
  ProxyPassReverse /app http://appserver.int.example.com/app
</VirtualHost>

或者:

  ProxyPass /app https://appserver.int.example.com/app
  ProxyPassReverse /app https://appserver.int.example.com/app

答案2

该网站建议你限制谁可以做CONNECT。基本上,你可以在<Proxy>您的主机的配置。

类似这样的方法可能会有用,从上面的链接中窃取:

<Proxy *>
   Order Deny,Allow
   Deny from all
   Allow from yournetwork.example.com
</Proxy>

这将仅允许来自的访问yournetwork.example.com。您可以输入 IP 范围以及主机。此外控制对代理的访问可能是一本好书。

如果你有mod_proxy_connect您可以假设CONNECT已启用。如果您只想使用反向代理,您可能可以一起卸载此模块。

希望这能帮助你前进。

相关内容