我有一个运行了mod_proxy
,mod_proxy_CONNECT
和mod_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
响应。
答案 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