2013-10-17 64 views
2

我有一個運行mod_proxymod_proxy_CONNECTmod_proxy_HTTP模塊的Apache 2 Debian網絡服務器。我的目標是能夠將其用作轉發代理服務器以通過端口80傳輸SSH會話。因此,SSH客戶端應該能夠使用代理服務器(在端口80上)連接到託管的SSH服務器22端口代理模塊被配置爲這樣:當請求端口22時,Apache 2轉發代理服務器返回403

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響應來響應。

回答

2

我對SSH和FTP有同樣的問題。 你必須在你的代理添加此配置:

AllowCONNECT 443 563 21 22 

默認情況下這個值設置到端口443和563,並且只有這些端口允許使用的連接方法,與obove您還啓用FTP的directiv和SSH defaultports。 詳情請參閱:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#allowconnect

編輯: 因爲Apache 2.4版本,你也可以指定portranges允許多個端口同時這樣的:

AllowCONNECT 20-30 
相關問題