リバースSSHによるSOCKSプロキシ

リバースSSHによるSOCKSプロキシ

同様の質問を見たことがありますが、答えがあまり有効ではないほど異なります。

2つのDebian Busterホストがあります。 1つはプライベートネットワーク(A)にあり、もう1つはAzure(B)にあります。

ホストAがホストBから逆SSH接続を開始することを試みます。その後、ホストBはSOCKSプロキシリスナーを開き、そのプロキシリスナーへの接続がホストAにトンネリングされるようにします。私はコマンドを入力してホストAでこれらすべてを達成したいと思います。

次のように、ホストBからホストA(ホストAによって開始)に逆SSHトンネルを設定できることがわかります。

ssh -R b:localhost:a b.b.b.b

a=ホストAの受信ポート
b=ホストBの受信ポート
、つまりb.b.b.bホストBのIPアドレス。

それでは、2番目の部分(ホストBにSOCKSプロキシリスナーを自動的に生成)が機能するようにするにはどうすればよいですか?可能ですか?それとも、netstat逆SSHトンネルが確立されたと言うたびに(または同様に)SOCKSプロキシリスナーを生成するスクリプトをホストBに生成する必要がありますか?

最初の答えに基づいて明確にするために編集されました。

ベストアンサー1

最初のステップであるリバースSSH接続を確立しましたか?その場合、localhost Aは、トラフィックがAzure Server Bのポート22に転送される2222などのすべてのポートでリッスンする必要があります(デフォルトのsshdポートがBで使用されている場合)。

  • 2番目のステップはソックスプロキシです。

ホストAタイプでは、
ssh -p 2222 -D 4444 -N localhost
SOCKSプロキシがリスニングするローカル(ホストA)からポート4444をランダムに選択しました。

トラフィック:4444ローカルA - > 2222ローカルA - > 22 Azure B

テストするには、Chromeなどのブラウザでソックスプロキシ設定を使用する
google-chrome --proxy-server="socks://localhost:4444"
か、SOCKSバージョン4または5を選択してください。
google-chrome --proxy-server="socks4://localhost:4444"

すべてが正常に機能したら、Azure コンピューターをゲートウェイ/プロキシとして使用してインターネットを検索する必要があります。公開IPを確認して確認してください。

おすすめ記事