OpenVPN, OpenConnect и Tailscale
Импорт и настройка профилей OpenVPN, OpenConnect и Tailscale, вход с одноразовыми кодами и корпоративный VPN параллельно с прокси.
Throne подключается к серверам OpenVPN, к Cisco AnyConnect и совместимым VPN (OpenConnect), а также входит в сети Tailscale. VPN-клиенты встроены в ядро, поэтому устанавливать OpenVPN или OpenConnect не нужно.
OpenVPN
Импортируйте файл .ovpn через Программа (Program) → Добавить профиль из файла (Add profile from File(s)) (Ctrl+O) или перетащите его в главное окно.
- Работают только клиентские профили с
dev tun. Профили TAP и серверные конфигурации отклоняются. - Контейнеры PKCS#12 не поддерживаются. Экспортируйте CA, сертификат и ключ в формате PEM и вставьте их в
Сертификат CA(CA Certificate),Сертификат клиента(Client Certificate) иКлюч клиента(Client Key). - Если файл берёт данные для входа из отдельного файла (
auth-user-pass), укажитеИмя пользователя(Username) иПароль(Password) в профиле. - Параметры, которые Throne не может использовать, перечисляются в логе.
OpenConnect
Протокол (Flavor) выбирает тип сервера: пусто или anyconnect (Cisco AnyConnect и совместимые), gp (Palo Alto GlobalProtect), fortinet, f5 (F5 BIG-IP), pulse (Pulse Connect Secure) или nc (Juniper Network Connect).
Throne импортирует XML-профили AnyConnect (по профилю на сервер), командные строки openconnect, например openconnect --protocol=gp --user=alice vpn.example.com, и конфигурационные файлы со строкой protocol= — из файла, буфера обмена или подписки.
Группа аутентификации (Auth Group) заранее выбирает группу, область (realm) или шлюз. Некоторым порталам GlobalProtect, F5 и Fortinet нужен путь из их URL в Путь на сервере (Server Path).
Параметры для обоих типов VPN
Только объявленные сервером сети(Only route advertised network, по умолчанию включено): в туннель попадает только трафик к сетям, которые объявляет VPN-сервер; остальной трафик, дошедший до профиля, блокируется. Выключите параметр для VPN, через который должен идти весь трафик. Файл.ovpnсredirect-gatewayвыключает его при импорте.DNS туннеля(Tunnel DNS):Предпочитать(Prefer, по умолчанию) разрешает через DNS-серверы VPN только имена, которые сервер заявляет своими (его домены split-DNS).Строго(Strict) также отправляет им все удалённые DNS-запросы, поэтому имена, на которые они не могут ответить, не разрешаются.Нет(None) игнорирует их.
Вход
Throne входит, используя сохранённые Имя пользователя и Пароль. Когда сервер запрашивает что-то ещё, открывается окно Аутентификация VPN (VPN Authentication):
- Вопрос или форма, например второй пароль: заполните и нажмите
Отправить(Submit). - Страница входа: нажмите
Открыть в браузере(Open in Browser), войдите там, затем закройте окно. - Единый вход (SSO), который работает только внутри браузера, пока не поддерживается. Используйте имя пользователя и пароль или, для OpenConnect, сессионный
Cookieв дополнительных настройках профиля (Дополнительно(Advanced)).
Если сервер отклоняет сохранённые данные для входа, Throne запрашивает их только для этого сеанса. Вкладка Статистика (Runtime Stats; только в расширенном режиме, см. Простой и расширенный режим) показывает состояние каждого VPN-подключения.
Менеджер OTP
Многие корпоративные VPN запрашивают одноразовый код из приложения-аутентификатора. В Throne есть собственный: Утилиты (Tools) → Менеджер OTP (OTP Manager) (только в расширенном режиме).
- Добавьте запись через
Импорт(Import) →Из ссылки или из текста...(From link or text...) (ссылкиotpauth://, экспортotpauth-migration://из Google Authenticator, JSON или секрет в Base32),Добавить вручную...(Add manually...),Из буфера обмена(From clipboard) илиИз файла с изображением QR-кода...(From QR image file...).Сканировать QR-код(Scan QR Code) находит QR-код на экране. - Скопируйте код, щёлкнув запись, или через
Коды OTP(OTP Codes) в меню трея. Удалить(Delete) удаляет запись безвозвратно.
Записи OTP входят в резервные копии (OTP-профили (OTP profiles)), поэтому не передавайте файлы резервных копий посторонним.
Использование кода в VPN-профиле
- Откройте профиль OpenVPN или OpenConnect и выберите запись в поле
OTP. - Если сервер ожидает код как часть пароля, поставьте
{otp}туда, где должен быть код, напримерMyPassword{otp}. Для OpenConnect{otp}работает также в поле программного токена (software token) и в полях форм. - Нажмите
OK.
Теперь Throne подставляет свежий код при каждом подключении и сам отвечает на запросы кода от сервера. Для статического запроса OpenVPN введите его текст в Статический запрос (Static Challenge).
Раздельное туннелирование: корпоративный VPN рядом с прокси
Профиль маршрутизации может запускать профили OpenVPN или OpenConnect параллельно с запущенным вами профилем. Трафик к сетям, которые объявляет VPN, идёт через VPN; всё остальное следует профилю маршрутизации.
- Откройте
Маршрутизация(Routing) →Настройки маршрутизации(Routing Settings) →Маршрутизация(Route), выберите используемый профиль маршрутизации и нажмитеРедактировать(Edit). - На вкладке
Конечные точки(Endpoints; только в расширенном режиме) выберите VPN-профиль и нажмитеДобавить(Add), затемOK. Вкладка появляется, когда у вас есть профиль OpenVPN или OpenConnect. - Убедитесь, что этот профиль маршрутизации активен, и запустите свой обычный профиль. VPN запустится вместе с ним.
Каждая конечная точка добавляет на вкладку Дополнительно (Advanced) правило … route prefer. Его можно только перемещать: правила выше него проверяются первыми.
- Профиль, используемый как конечная точка, не может одновременно быть запускаемым профилем или его звеном.
- Конечной точкой может быть цепочка, выход которой — профиль OpenVPN или OpenConnect.
Разрешить маршрутизацию на внутренние звенья(Allow routing to inner hops) направляет трафик и на такие звенья внутри цепочки. - Звенья конечной точки не могут работать на Xray и не могут быть профилями дополнительного ядра (Extra Core) или профилями с полной конфигурацией.
Полный пример см. на странице Рецепты.
Tailscale
Профиль Tailscale подключается к вашей сети tailnet, так что вы можете обращаться к своим устройствам Tailscale или использовать одно из них как выходной узел. Создайте его через Программа → Новый профиль (New profile) → Тип (Type) Tailscale:
| Поле | Назначение |
|---|---|
Auth Key |
Ключ для входа в вашу сеть tailnet, из консоли администратора Tailscale. |
Control URL |
Меняйте только для собственного управляющего сервера. |
Имя хоста (Hostname) |
Имя этого устройства в tailnet. |
Выходной узел (Exit node) |
Устройство tailnet, через которое идёт интернет-трафик. Выходной узел: разрешить доступ к LAN (Exit node allow lan access) сохраняет доступ к локальной сети. |
Принимать маршруты (Accept routes) |
Использовать маршруты подсетей, которые объявляют другие устройства. |
Объявлять выходной узел (Advertise exit node), Объявлять маршруты (Advertise routes) |
Предлагать этот компьютер как выходной узел или предлагать подсети (через запятую). |
Эфемерный узел (Ephemeral) |
Tailnet удаляет это устройство после того, как оно уходит из сети. |
Директория состояния (State directory), Глобальный DNS (Global DNS) |
Где хранится состояние входа ($HOME/.tailscale) и использует ли DNS Tailscale также глобальные серверы имён tailnet. |
Имена tailnet (в зоне ts.net) разрешаются через DNS Tailscale, остальные — через ваши обычные настройки DNS. Тесты задержки и автовыбор пропускают профили Tailscale.
Android
- Профили OpenVPN и OpenConnect работают с теми же форматами импорта, но без OTP,
Только объявленные сервером сетииDNS туннеля. Они должны входить с сохранёнными именем пользователя и паролем. Записи OTP из резервной копии с компьютера не восстанавливаются. - Конечные точки профилей маршрутизации (раздельное туннелирование) не работают. Профиль маршрутизации из резервной копии с компьютера сохраняет их, но Android их не запускает.
- Профили Tailscale не поддерживаются. На обеих платформах автовыбор пропускает профили OpenVPN и OpenConnect.