Я использую 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
Ответы:
Не клиент ssh решает, через какой интерфейс будут отправляться TCP-пакеты, а ядро. Короче говоря, SSH просит ядро открыть соединение с определенным IP-адресом, и ядро решает, какой интерфейс использовать, обращаясь к таблицам маршрутизации.
(Ниже предполагается, что вы работаете в GNU / Linux; общая концепция одинакова для всех Unices, но специфика команд, которые нужно выполнить, и способ форматирования выходных данных могут отличаться.)
Вы можете отобразить таблицы маршрутизации ядра с помощью команд route -n и / или ip route show .
OpenConnect должен был добавить строку для
tun0
интерфейса; соединения с любым адресом, соответствующим этой линии, будут маршрутизироваться через этот интерфейс. Например, работаяroute -n
на своем ноутбуке, я получаю следующий вывод:Это означает, что соединения с хостами в сети 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
интерфейса. Я полагаю, я должен сделать это вручную.Я не знаю, когда это было введено, но клиент OpenSSH на RHEL7 имеет это на своей странице руководства:
Не так хорошо, как возможность выбрать интерфейс, но близко.
источник
-B
флаг, который позволяет указать имя используемого сетевого интерфейса.-b bind_address
не работает для меня, как-то. Изменение маршрута временно должно работать. Кстати:-B
опция не существует в версии SSH, которая поставляется с Ubuntu.Если вы используете Network Manager для управления своими интернет-соединениями (как это делается по умолчанию во многих системах), вы можете установить и то,
openconnect
и другоеnetwork-manager-openconnect
.Как только плагин OpenConnect установлен для Network Manager, откройте Network Manager и щелкните +значок в левом нижнем углу. Вам должен быть предоставлен комбинированный список с опцией VPN, а затем возможность выбрать OpenConnect Compatible VPN .
Используя Network Manager для взаимодействия с OpenConnect, ваши маршруты будут появляться автоматически и помогут вам подключиться к VPN. Это особенно полезно для доступа к серверам через VPN, например, как работает FireHost .
источник
Просто добавление ответа. Вы можете использовать
-b
флаг и определить свой IP-адрес источника во время доступа.Формат + Пример
источник