複数のホスト間のSSHトンネル

複数のホスト間のSSHトンネル

これは、ここで見た他のSSH問題とはわずかに異なるため、ここにあります。 Webアプリケーションにアクセスするための設定が複雑で残念ながらこれを解決する方法はありません。関連するシナリオとシステムは次のとおりです(明白な理由で匿名化されたIPアドレス)。

System Alpha
System Bravo
System Charlie
System Delta

System AlphaからSystem Delta利用可能なWebサイトに通信する必要があります。問題は、System Deltaと直接会話できないことです。現在は、Bravo システムに SSH で接続でき、Bravo システムをプロキシとして使用するプロキシコマンドを使用して、システム Charlie に SSH で接続できます。これを説明するために、SSH構成は次のとおりです。

Host system.bravo
  User bob
  Hostname 1.1.1.1
  ForwardAgent yes

Host system.charlie
  User bob
  ForwardAgent yes
  ProxyCommand ssh -q system.bravo nc localhost 1081

System Alpha はポート 1081 で System Bravo 用のリバース SSH トンネルを作成するため、System Charlie にこの方法でアクセスできます。これは、System BravoとSystem Charlieの間のファイアウォールがSystem BravoへのSSHアウトバウンドのみを許可するために行われます。面倒なことはわかりますが、お客様のご要望です。

システム Charlie は、SSH 経由で Delta システムにアクセスするのに問題はありません。私の質問は、System AlphaがSystem DeltaからのみアクセスできるWebサイトにアクセスできるように、SSH経由で利用可能なSOCKSプロキシを設定する方法です。通常私はこうする:

ssh -2 -C -D 4001 -L 4002:localhost:4002 -L 4003:localhost:4003 [email protected]
ssh -2 -C -D 4002 -L 4003:localhost:4003 [email protected]
ssh -2 -C -D 4003 [email protected]

次に、Firefoxにサイトアクセス用のジョブプロキシになるlocalhost:4003を指定します。しかし、BravoシステムとCharlieシステムの間の奇妙な設定のため、これは機能しません。 ***通信を示す図がこの作業をより簡単にすることが私に指摘されました。だからここにあります:

A full list of possible connections:
     ----->      --X-->       ----->
Alpha       Bravo      Charlie      Delta
     <--X--      <-----       <--X--

The connection between Alpha and Bravo and Charlie as it is currently 
configured:

     ProxyCommand ssh -q system.bravo nc localhost 1081
     -------------------------------------------------->      
Alpha    Bravo <---------------------------------------- Charlie
                      AUTOSSH -R 1081:localhost:22 

-----> = An allowed connection via SSH
--X--> = A blocked connection, only reverse SSH possible

BravoシステムとCharlieシステムの間に必要なプロキシコマンドとリバースSSHトンネルを念頭に置いて、これを行う方法の解決策を持っている人はいますか?

非常にありがとう

PS:私の図が役に立つことを願っています。申し訳ありません。実際の画像ではありません。

ベストアンサー1

AからCへSSH経由で接続できる場合は、次のようにできます。

user@Alpha:~$ ssh -L1234:localhost:1234 Charlie
user@Charlie:~$ ssh -Dlocalhost:1234 Delta

...この時点で、Firefoxにlocalhost:1234をSOCKSプロキシとして使用するように指示できます。ローカルSSHはトンネルを介してCにプロキシし、sshはSOCKSサーバーに受信してDに転送します。

しかし、実際に私はあなたの顧客の意見に同意しません。顧客がAからサイトにアクセスしたい場合は、顧客はそうするための合理的な方法を提供する必要があります。 VPNのような。

おすすめ記事