ポートのTCP接続用の透過プロキシ(ほとんどの場合、ルートアクセスは不要)

ポートのTCP接続用の透過プロキシ(ほとんどの場合、ルートアクセスは不要)

私のクライアントコンピュータは、インターネットのどこかにあり、内部のターゲットコンピュータのカスタムポートにアクセスする必要があります(または最初はアクセス可能なコンピュータのすべてのポートですが、最終的には12345などのターゲットコンピュータの特定のポート)。ネットワーク内部コンピュータの接続のみを許可するネットワーク。

               |
Client --X-->  |   Target:12345
               |
(the Internet)   (private network)

VPNなし

プライベートネットワークにはVPNサーバーがありますが、クライアントへのルートアクセス権がなく、そこから(オープン)VPNを使用できないため、プライベートネットワークに簡単にアクセスできません。

根のない「ドア」

おそらく、クライアントがターゲットに到達するのに役立つ最初のものは、外部の世界からアクセスできるプライベートネットワークのゲートシステムであり、ターゲットはゲートからのTCP接続を許可します。

               |
Client --?--> Gate --ok--> Target:12345
               |

問題は、Gate [:some_port]に接続しているクライアントが実際にTarget:12345と通信できるように、Gateで透過的なTCPトラフィック転送を設定することです。

  • Gateがrootアクセス権を持っている場合は、iptablesを使用してGate [:chosen_port]に到着したTCPトラフィックをTarget:12345に透過的に転送します。しかし、私はGateへのrootアクセス権を持っていません(しかし、そこにはユーザーレベルのアクセス権があり、SSH経由でアクセスできます)。

  • SSHを介してターゲットにアクセスできる場合は、クライアントがそのトンネルを介してターゲットにアクセスできるように、ターゲットとゲートの間にSSHトンネルを設定します。ただし、TargetへのSSHアクセス権はありません。プライベートネットワーク内でポート12345へのTCP接続を確立するだけです。

クライアントとゲートウェイの両方で、ルートなしで宛先へのSSHアクセスなしで上記のTCP転送を設定できますか?答えが「いいえ」の場合は、その後の質問があります。

ルート「ドア」+ルート「インナー」なし

Gateに加えて、プライベートネットワークにはrootアクセス権を持つInsiderマシンもあります。

               |
Client -ssh-> Gate -ssh-> Insider --?--> Target:12345
               |

リバース SSH トンネルは Insider から Gate に設定されるため、クライアントは Insider に SSH で接続でき、理論的には、Insider は Target のポート 12345 への TCP 接続を (「手動で」) 確立できます.しかし、これは私が探している透明なTCPトラフィック転送ソリューションではありません。

後者の場合、クライアントからTarget:12345にトラフィックを透過的に転送できるように、Insiderでrootアクセス権を持つことはできますか?

どんなアドバイスもありがとうございました!

答え1

SSHポート転送が利用可能

ssh [email protected] -L 10000:172.16.10.10:10000

localhost:10000 に接続できる場合、実際には 172.16.10.10:10000 のサービスに接続されます。

ssh -Dパラメータを使用して「プロキシ」を生成することもできます。

関連情報