请求端口22时,Apache 2转发代理服务器返回403

时间:2013-10-17 01:10:18

标签: apache2 mod-proxy

我有一个运行了mod_proxymod_proxy_CONNECTmod_proxy_HTTP模块的Apache 2 Debian Web服务器。我的目标是能够将其用作转发代理服务器以通过端口80隧道化SSH会话。因此,SSH客户端应该能够使用代理服务器(在端口80上)连接到托管在其上的SSH服务器端口22.代理模块配置如下:

ProxyRequests On

<Proxy *>
    AddDefaultCharset off
    Order Deny,Allow
    Allow from all
</Proxy>

使用代理连接到任何常规网站时,它可以正常工作。在浏览器中使用GET方法连接到端口22上的SSH服务器时也可以使用它。例如:

GET http://sshserver.com:22/ HTTP/1.1
Host: sshserver.com:22

但是,当使用CONNECT方法时(我们可以使用SSH协议),例如:

CONNECT sshserver.com:22 HTTP/1.1
Host: sshserver.com:22

服务器响应预告403 Forbidden响应。

1 个答案:

答案 0 :(得分:2)

我对SSH和FTP有同样的问题。 您必须在代理配置中添加它:

AllowCONNECT 443 563 21 22  

默认情况下,此值设置为端口443和563,并且只允许这些端口使用connect方法,而directiv也允许您启用FTP和SSH默认端口。 有关详细信息,请参阅:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#allowconnect

修改 从Apache 2.4版开始,您还可以指定端口范围,以便一次允许多个端口:

AllowCONNECT 20-30