クライアントからサーバーへのリバース トンネルを実装する必要があります。次のコマンドでJSCHを使用しました
session.setPortForwardingR(rport, lhost, lport);
そしてそれは機能します(JSCH Javaを使用したリバースSSHトンネルも参照してください)!
次に、双方向認証された HTTPS ストリームを介して ssh セッションをトンネリングする必要があります。
client -> firewall -> apache https -> ssh server ----------------------> HTTPS ====================================> SSH ---------------------->
を探しています
- SSH を HTTPS にカプセル化するための小さな Java コード
- 双方向 HTTPS 認証
- アパッチ構成
可能な解決策:
1) HTTPS トンネル
- JHTTPTunnelですが、J2ME に基づいており、SSL をサポートしていません ( Java Http トンネリング、HTTP 経由でバイナリ データを送信するための Java ライブラリはありますか、HTTP トンネリングも参照してください) 。
- JOD、ただしSSLはサポートしていません
3) アパッチ構成
- たぶんこの構成は機能しますが、試してみる必要があります
## Load the required modules. LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so ## Listen on port 8443 (in addition to other ports like 80 or 443) Listen 8443 <VirtualHost *:8443> ServerName youwebserver:8443 DocumentRoot /some/path/maybe/not/required ServerAdmin admin@example.com ## Only ever allow incoming HTTP CONNECT requests. ## Explicitly deny other request types like GET, POST, etc. ## This tells Apache to return a 403 Forbidden if this virtual ## host receives anything other than an HTTP CONNECT. RewriteEngine On RewriteCond %{REQUEST_METHOD} !^CONNECT [NC] RewriteRule ^/(.*)$ - [F,L] ## Setup proxying between youwebserver:8443 and yoursshserver:22 ProxyRequests On ProxyBadHeader Ignore ProxyVia Full ## IMPORTANT: The AllowCONNECT directive specifies a list ## of port numbers to which the proxy CONNECT method may ## connect. For security, only allow CONNECT requests ## bound for port 22. AllowCONNECT 22 ## IMPORTANT: By default, deny everyone. If you don't do this ## others will be able to connect to port 22 on any host. <Proxy *> Order deny,allow Deny from all </Proxy> ## Now, only allow CONNECT requests bound for kolich.com ## Should be replaced with yoursshserver.com or the hostname ## of whatever SSH server you're trying to connect to. Note ## that ProxyMatch takes a regular expression, so you can do ## things like (kolich\.com|anothersshserver\.com) if you want ## to allow connections to multiple destinations. <ProxyMatch (kolich\.com)> Order allow,deny Allow from all </ProxyMatch> ## Logging, always a good idea. LogLevel warn ErrorLog logs/yourwebserver-proxy_error_log CustomLog logs/yourwebserver-proxy_request_log combined </VirtualHost>