SSH リバース トンネルを介して VPN に接続できますか?

SSH リバース トンネルを介して VPN に接続できますか?

たとえば、Linux を実行しているマシンが 2 台あるとします。

マシン A は VPN サーバーを実行しており、NAT の背後にあります。

マシン B は VPN クライアントです。

マシン A は、自身からマシン B へのリバース SSH トンネルを作成し、マシン B のポートを公開して、マシン A で実行されている VPN に接続します。

SSH リバース トンネルを介してマシン B からマシン A の VPN サーバーに接続するにはどうすればよいですか?

答え1

SSH トンネルは TCP でのみ機能するため、VPN サーバーは接続に TCP を使用するように構成する必要があります。マシン A に接続するのと同じように、マシン B のトンネル エンドポイントに接続します。つまり、クライアント構成の IP アドレスと宛先ポートを置き換えるだけです。

答え2

次のような設定があるとします。

  • マシン B にはパブリック ドメイン machine.b があり、ポート 22 はマシン B の SSH サーバーにアクセスします。
  • マシン A のローカル IP アドレスは 192.168.10.2 で、VPN サーバーはポート 1194 を使用します。

リバース SSH 接続を介して VPN 接続を設定する手順:

  • マシン A は次のコマンドでマシン B への SSH 接続を確立します: ssh -i "/path/to/key/file" -R 2500:192.168.10.2:1194[メールアドレス]-p 22
  • マシンBは127.0.0.1:2500へのVPN接続を確立する

その結果、マシン B からローカルホスト (127.0.0.1) のポート 2500 への接続は SSH トンネルを介してリダイレクトされ、マシン A の VPN サーバーであるマシン A の 192.168.10.20 のポート 1194 に送信されます。

会社の VPN がメンテナンス中の場合に備えて、このセットアップを DIY VPN サーバーとして常に使用しています。

関連情報