可能なことは、ファイアウォールが許可するものに依存します。
ファイアウォールがポート443で任意のトラフィックを許可する場合
一部のファイアウォールは簡単な方法でポート443で何でも許可します。その場合、ホームサーバーに到達する最も簡単な方法は、ポート443でSSH接続をリッスンすることです。マシンがインターネットに直接接続されている場合、という行に追加Port 443
する/etc/ssh/sshd_config
か、/etc/sshd_config
そのすぐ下に追加しますPort 22
。マシンが着信接続をリダイレクトするルーター/ファイアウォールの背後にある場合、着信接続をポート443にリダイレクトし、サーバーのポート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アドレスです。
ホームサーバーがポート443でHTTPS接続とSSH接続の両方をリッスンできるようにする場合、SSHとHTTPSトラフィックを簡単に区別できます(SSHではサーバーが最初に通信しますが、HTTPとHTTPSではクライアントが通信します)最初)。この設定方法のチュートリアルについては、http ://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.htmlおよびhttp://wrouesnel.github.io/articles/Setting%20up%20sshttp/を参照してください。sshttpで設定し、Webサーバー(nginx)がこれらのポートで実行されている間にポート80または443でSSHを使用する
CONNECTトンネリングを許可するWebプロキシがある場合
一部のファイアウォールはすべての発信接続をブロックしますが、HTTPCONNECT
メソッドがファイアウォールの穴を効果的に貫通できるプロキシを介してWebを閲覧できます。このCONNECT
方法は特定のポートに制限される場合があるため、上記のようにポート443でリッスンすることと組み合わせる必要があります。
SSHをプロキシ経由で送信するには、corkscrewなどのツールを使用できます。あなたには~/.ssh/config
、追加ProxyCommand
あなたのWebプロキシがある場合は、以下のような行をhttp://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
HTTP(S)でのSSHのラッピング
一部のファイアウォールは、ポート443でもSSHトラフィックを許可しません。これらに対処するには、SSHを偽装するか、ファイアウォールが通過させるものにトンネルする必要があります。proxytunnelでこれを行うためのチュートリアルについては、http://dag.wiee.rs/howto/ssh-http-tunneling/を参照してください。