次のSSH設定がある場合:
ホストA - >ホストB < - ホストC
ホストCがNAT /ファイアウォールの背後にある場合は、ホストBのリバーストンネルを開き、ホストAはホストB(ProxyCommand)を介してホストCに接続します。すべてがIPv4専用です。
多くのルートアクセスやそのホストへのハッキング方法なしでホストAとホストCの間でIP(v6)接続を確立する簡単な方法はありますか?
編集:基本的に次のようなもの
hostC$ ssh -R 1234:localhost:22 hostB # establis remote hole for host C on host B
hostA$ ssh -o"ProxyCommand=ssh hostB nc localhost 1234" # Connect via HostB to Host C
hostA$ ping6 <ipv6> # this would validate the connectivity to HostC
アイデアは、IP(v6)ネットワークをできるだけ一時的にすることです。 :::1 から HostC を受信するサービスは、HostA からアクセスできる必要があります。
答え1
SSHポート転送とVPNを混同しているようです。これは機能が異なる非常に異なる概念です。
SSHポート転送を使用すると、あるサーバー(IPとポート)が別のサーバー(IPとポート)であるかのように偽装できます。図では、ホストAはホストB(ポート1234)と通信していると思いますが、実際にはホストBがトラフィックを転送するため、ホストC(ポート22)と通信しています。ホストAは、ホストCが存在することを決して知らない。
実際には、ホストAがホストCと通信できること(ホストCと通信していることを知っている)、すべてのトラフィックがホストBを介して送信されるVPNだと思います。
SSHだけではこれを行うことはできません。通常、すべてのホスト(A、B、C)に同じVPNソフトウェア(OpenVPNなど)がインストールされている必要があります。 B は VPN サーバーに設定され、A と C はクライアントとして設定されます。
1つの例外があります。宇宙船クライアントにsshuttleがある限り、sshサーバーがVPNサーバーとして機能することを許可します。ただし、後続の構成では機能しない可能性があります。ホストAとCが互いに対話できなくなる可能性があります。