Використовуйте ssh з певним мережевим інтерфейсом


38

Я використовую openconnectдля підключення до vpn. Після введення своїх облікових даних я отримую таке:

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

Чи можете ви детальніше розглянути конфігурацію вашої мережі? При правильній маршрутизації, будь-який трафік, призначений для мережі, приєднаної до tun0, буде використовувати цей інтерфейс.
Eli Heady

Відповіді:


45

Це не клієнт 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.


Дякую, що мені це пояснили - здається, що openconnectне додали рядок для tun0інтерфейсу. Я думаю, я повинен це робити вручну.
axel22

1
@ axel22 Ви можете подивитися тут: bbs.archlinux.org/viewtopic.php?id=69064 для сценарію, який використовує openconnect та встановлює маршрути.
Ріккардо Муррі

@RiccardoMurri Хочете відповісти на моє запитання
Rahul Gautam

7

Я не знаю, коли він був представлений, але клієнт OpenSSH на RHEL7 має це на своїй сторінці:

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

Не так добре, як вміти вибирати інтерфейс, але закрити.


Також -Bпрапор, який, як видається, дозволяє вказати ім'я мережевого інтерфейсу, який слід використовувати.
Генрік

Варіант -b bind_addressне працював для мене якось. Зміна маршрутів тимчасово повинна працювати. BTW: -BПараметр не існує у версії SSH, що постачається з Ubuntu.
Іван

2

Якщо ви використовуєте Менеджер мереж для управління своїми підключеннями до Інтернету (як це менеджер за замовчуванням у багатьох системах), можливо, ви захочете встановити і те, openconnectі network-manager-openconnect.

Після того, як плагін OpenConnect встановлений для Менеджера мереж, відкрийте Менеджер мережі та натисніть на +значок внизу зліва. Вам слід надати комбінований вікно з опцією VPN, а потім можливість вибору OpenConnect Compatible VPN .

Використовуючи Менеджер мережі для взаємодії з OpenConnect, ваші маршрути автоматично з’являться і допоможуть вам підключитися до VPN. Це особливо корисно для доступу до серверів через VPN, наприклад, як FireHost робить справи.


1

Просто додавання відповіді. Ви можете використовувати -bпрапор та визначати свій вихідний IP-адресу під час доступу.

Формат + приклад

ssh -b interface-ip remote-ip
ssh -b 10.11.22.40 10.11.22.38 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.