SSHトンネルの送信インターフェースを指定する

SSHトンネルの送信インターフェースを指定する

2 つのインターフェースに 2 つのパブリック IP アドレスを持つマシンがあります。このマシンは を実行していますsshd。SOCKS インターフェース (つまり ) でトンネルを作成するときに、送信接続に使用するインターフェースを指定する方法はありますか-D?

答え1

厳密に言えば、mgjkが提案したsshの-bオプションとルーティングを組み合わせることで問題を解決できます。サイト8.8.8.7(架空の例)へのトンネルを構築しようとしていて、接続がeth1を通過するようにしたい場合、コマンド

 sudo route add -host 8.8.8.7 dev eth1

適切なルートが追加され、すべてがうまくいくはずです。

しかし、これは「ポリシールーティング」の適用に最適なケースでもあります。トンネルを設定するマシン上でルーティングテーブルを構成する必要があります(つまりコマンドがssh -D ...が発行される理由は、単に 2 つのインターフェイスが存在する唯一のものであるためです。

簡潔だが十分な説明はデイビッド・シュワルツによるものである。このサイト上で重要な詳細は次のとおりです。eth0が192.168.1.2で、eth1が10.0.0.2の場合、次のように記述します。

 ip rule add from 10.0.0.2 table <NAME1>
 ip rule add from 192.168.1.2 table <NAME2>

この時点で、-b 経由で ssh 接続を eth1 のアドレスにバインドすれば完了です。

答え2

-b を使用すると何が起こりますか?

 -b bind_address
         Use bind_address on the local machine as the source address of
         the connection.  Only useful on systems with more than one
         address.

関連情報