httpまたはhttpsを介してsshを使用する方法は?

httpまたはhttpsを介してsshを使用する方法は?

私は会社のファイアウォールの後ろにLinux fedora21クライアントノートブックを持っています(httpポートとhttpsポートは許可されていますがssh 22は許可されていません)、自宅に私のルーターの後ろにLinux fedora21サーバーがあります。ホームサーバーのパブリックIPアドレスを指定したら、httpsを使用して参照できます。 (ホームルータを設定したためです。)

http / sポートを介してホームサーバーにリモートシェル(SSH)で接続できますか?

というツールを見ましたcorkscrew。役に立ちますか?

opensshdhttpdホームサーバーで実行されます。他の設定が必要ですか?

ベストアンサー1

可能なことは、ファイアウォールが許可するものによって異なります。

ファイアウォールがポート443でランダムトラフィックを許可する場合

一部のファイアウォールは、ポート443のすべてを可能にする簡単なアプローチをとります。この場合、ホームサーバーにアクセスする最も簡単な方法は、SSH接続をポート443でリッスンすることです。コンピュータがインターネットに直接接続されている場合は、または下にPort 443行を追加するだけです。コンピュータが着信接続をリダイレクトするルーター/ファイアウォールの背後にある場合は、次のコマンドを使用してポート443の着信接続をサーバーのポート22にリダイレクトします。/etc/ssh/sshd_config/etc/sshd_configPort 22

iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22

ここではwan0ルーターのWANインターフェース、10.1.2.3はホームネットワーク上のサーバーのIPアドレスです。

ホームサーバーがHTTPS接続とSSH接続の両方に対してポート443でリッスンするようにするには、これが可能です。 SSHとHTTPSトラフィックは簡単に区別できます(SSHではサーバーが最初に通信し、HTTPとHTTPSではクライアント側が最初に通信します)。ツーエンド会話最初)。バラよりhttp://blog.stalkr.net/2012/02/sshhttps-multiplex-with-sshttp.htmlそしてhttp://wrouesnel.github.io/articles/Setting%20up%20sshttp/設定方法のチュートリアルsshttp、そしてWebサーバー(nginx)がこのポートで実行されている場合は、ポート80または443でSSHを使用してください。

CONNECTトンネリングを許可するWebプロキシがある場合

一部のファイアウォールはすべての発信接続をブロックしますが、プロキシによるWeb検索は許可します。HTTPプロトコルCONNECTファイアウォールに穴を開ける効果的な方法です。このCONNECT方法は特定のポートに制限される可能性があるため、上記のポート443でリッスンすることと組み合わせることができます。

プロキシ経由でSSHを取得するには、次のツールを使用できます。ボトルピッグ~/.ssh/configWebProxyCommandプロキシが次の場合http://web-proxy.work.example.com:3128

Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p

その後、接続を実行しますssh home

SSHをHTTP(S)にラップする

一部のファイアウォールはポート 443 でも SSH トラフィックを許可しません。この状況を処理するには、SSHをファイアウォールが許可するものとして偽装またはトンネリングする必要があります。バラよりhttp://dag.wiee.rs/howto/ssh-http-tunneling/このタスクのチュートリアルプロキシトンネル

おすすめ記事