web-dev-qa-db-ja.com

特定のネットワークインターフェイスでSSHを使用する

VPNへの接続にopenconnectを使用しています。資格情報を入力すると、次のようになります。

POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection

ifconfigを実行すると、新しいネットワークインターフェイスtun0特定のIPアドレス。

質問:sshにネットワークインターフェイスのみを使用させるにはtun0プライベートネットワーク上のコンピュータにアクセスできるようにするにはどうすればよいですか。

編集:

私のネットワーク構成(route -n)のようです:

172.16.194.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.25.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 eth0
39
axel22

どのインターフェイスを経由するかを決定するのはsshクライアントではありませんTCPパケットが通過する必要があるのはカーネルです。つまり、SSHはカーネルに特定のIPアドレスへの接続を開くように要求し、カーネルはインターフェイスは、ルーティングテーブルを参照して使用されます。

(以下は、GNU/Linuxを使用していることを前提としています。一般的な概念はすべてのUnicesで同じですが、実行するコマンドの詳細と出力のフォーマット方法は異なる場合があります。)

カーネルルーティングテーブルは、コマンド route -n または ip route show で表示できます。

OpenConnectはtun0インターフェースの行を追加しているはずです。その行に一致するアドレスへの接続は、そのインターフェイスを通じてルーティングされます。たとえば、ラップトップでroute -nを実行すると、次の出力が得られます。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.30.0.1       0.0.0.0         UG    0      0        0 eth0
10.30.0.0       0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

これは、192.168.122.0/24のホストへの接続(つまり、アドレス192.168.122.0から192.168.122.255 CIDR表記 )ネットワークは、インターフェースvirbr0;を介してルーティングされることを意味します。 169.254.0.0/16および10.30.0.0/24への接続はeth0を通過し、それ以外(0.0.0.0行)はeth0経由で ゲートウェイホスト 10.30にルーティングされます。 0.1.

46
Riccardo Murri

いつ導入されたかはわかりませんが、RHEL7のOpenSSHクライアントのマンページに次のように記載されています。

 -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.

インターフェイスを選択できるほど良くはありませんが、閉じます。

11
ugob

ネットワークマネージャーを使用してインターネット接続を管理している場合(多くのシステムのデフォルトマネージャーと同様)、openconnectnetwork-manager-openconnectの両方をインストールすることができます。

OpenConnectプラグインがNetwork Manager用にインストールされたら、Network Managerを開き、 + 左下のアイコン。オプション[〜#〜] vpn [〜#〜]のコンボボックスと、選択機能OpenConnect互換VPN

Network Managerを使用してOpenConnectとインターフェースすることにより、ルートが自動的に表示され、VPNへの接続に役立ちます。これは、VPNを介してサーバーにアクセスする場合に特に役立ちます。たとえば、 FireHost の動作などです。

2
earthmeLon

回答を追加するだけです。 -bフラグを使用して、アクセス時にソースIPを定義できます。

フォーマット+例

ssh -b interface-ip remote-ip
ssh -b 10.11.22.40 10.11.22.38 
2
Shafiq