ファイアウォールの背後にあるSSHサーバーに接続するために他のサーバーをどのように使用しますか?

ファイアウォールの背後にあるSSHサーバーに接続するために他のサーバーをどのように使用しますか?

サーバーが2つあり、ネットワークは次のとおりです。

Server_A (Ubuntu) -> Firewall/Router -> Internet

Server_Aはインターネット上の任意のサーバーに接続できます。

Server_B (Ubuntu) which is directly connected to the internet.

Server_Bのポート転送やファイアウォールに制限はありません。

Server_A はローカルネットワーク内にあり、ここではポート転送ができないため、インターネットから Server_A に接続できません。ルーターにアクセスできません。

Server_AはServer_Bに接続してServer_BにSSHで接続し、Server_Aと通信できますか?

答え1

Server_AでSSHサーバーを実行できる場合は、Server_AからServer_BにSSHを実行し、Server_BのポートをServer_AのSSHサーバーに転送できます。

Server_A$ ssh -R 12345:localhost:22 Server_B
Password:
Server_B$ 

その後、Server_Bでは、localhostを使用してポート12345からServer_AにSSHを介して接続できるようになりました。

Server_B$ ssh -p 12345 localhost
Password:
Server_A$

もしあなたなら本物Server_AのSSHサーバーをインターネットに公開するには、他のホストからポート転送にアクセスできるように設定できますが、それを許可するにはServer_Bのsshd_configファイルが必要ですGatewayPorts

Server_A$ ssh -R '*:12345:localhost:22' Server_B
Password:
Server_B$ 

それからどこでも:

Anywhere$ ssh -p 12345 Server_B
Password:
Server_A$

しかし、コメントでも言及したように非常にいくつかの重要なセキュリティポリシーをスキップしないように注意してください。

答え2

Teredo(オープンソースの世界ではMiredo)の使用を検討してください。次の節はウィキペディアから恥ずかしいコピーです。

コンピュータネットワーキングでは、TeredoはIPv4インターネット上のIPv6対応ホストに完全なIPv6接続を提供しますが、IPv6ネットワークへのデフォルト接続は提供しない移行技術です。同様のプロトコルとは異なり、ホームルーターなどのNAT(Network Address Translation)デバイスの背後でその機能を実行することもできます。

サーバーが実行されると、Teredoクライアントは自動的にリレーサーバーに接続し、ルーティング可能なIPv6アドレスを取得します。 IPv6アドレスは、Teredoリレー/サーバーによっては静的または動的です。必要に応じて動的DNSアップデートを実行することもできます。

これにより、ポート転送に依存せずにサーバーとクライアント間のシームレスな双方向接続が提供されます。 PKI インフラストラクチャを使用して IPv6 アドレスへのアクセスを制限することで、セキュリティの問題を解決する必要がある場合があります。

関連情報