Прежде чем скачивать ещё один клиент, посмотрите, что операционная система уже реализует, потому что ответа часто достаточно, чтобы вовсе обойтись без установщика. Windows, macOS и ChromeOS поставляются с фиксированным и коротким списком протоколов туннелей, и шлюзу, который говорит на одном из них, не нужны дополнительный драйвер, служба или путь обновления. Это решает не имя поставщика в брошюре. Это решают протокол, способ аутентификации конечной точки и адрес, которого она ждёт.

Спрашивайте протокол, а не название продукта

Название продукта очень мало говорит о том, что идёт по проводу. Два шлюза, продаваемых под одним ярлыком, могут требовать совершенно разных туннелей, и один может принимать встроенный клиент, тогда как другой отказывает во всём, кроме собственного портала. Два администратора, описывающих один и тот же ящик, могут расходиться и оба быть правы, потому что описывают разные уровни. Туннель внизу — это то, что решает, нужен ли установщик.

Задайте три вопроса тому, кто управляет шлюзом: какой протокол туннеля, какой метод аутентификации и какой адрес и суффикс DNS должен принять клиент. Просите протокол по имени, и когда ответ приходит названием продукта, объясните, почему нужен именно протокол. Эти три ответа решают вопрос клиента до загрузки любого программного обеспечения.

Есть причина, по которой название продукта живёт в стольких заявках. URL портала — это то, что видят пользователи, а туннель невидим, пока работает. Записать протокол в передаточную записку стоит одной строки и снимает неоднозначность для всех, кто придёт позже.

Где заканчивается встроенный список

Собственные списки коротки, и их края важнее содержимого. Платформа, которая говорит по L2TP поверх IPsec с заранее общим ключом, не будет говорить SSTP, и эта разница решает выбор клиента. Таблица упорядочена по туннелю, а не по поставщику, поэтому вы можете найти протокол, названный шлюзом.

TunnelWindowsmacOSChromeOSLinux
PPTPbuilt inremoved in 10.12nopackage
L2TP over IPsec, pre-shared keybuilt inbuilt inbuilt inpackage
L2TP over IPsec, certificatebuilt inbuilt inbuilt inpackage
SSTPbuilt innonopackage
IKEv2built inbuilt innopackage
Cisco IPsec with XAuthnobuilt innopackage
OpenVPNnonobuilt inpackage

Читайте таблицу относительно требований шлюза, а не брошюры. Если ответ — L2TP поверх IPsec с заранее общим ключом, первые три платформы подключаются без ничего дополнительно установленного. Если ответ — OpenVPN, до установки чего-либо покрыт только ChromeOS. Протокол, которого нет ни в одном встроенном столбце, — честный сигнал, что установщик уже в пути.

Linux — это столбец, который сопротивляется обобщению. Поддержка протоколов там живёт в демонах и плагинах, которые дистрибутив решает упаковать, поэтому минимальный образ может не говорить ни на одном из них, пока вы их не добавите, и два дистрибутива с одним рабочим столом могут различаться.

Соберите профиль из командной строки

Всё, что записывает графическая панель, хранится где-то, куда вы можете добраться, и именно это делает встроенный профиль автоматизируемым. Windows хранит записи VPN в .pbk файлах в профиле пользователя и в ProgramData, а rasphone может перечислять и редактировать записи, которые список сетей не показывает. Это важно, когда машина готовится скриптом и никто не будет щёлкать по мастеру. Это также объясняет, как профиль может существовать, ни разу не появившись в трее.

rasdial
rasdial "VpnName" alice
rasdial "VpnName" /disconnect

Правка .pbk файла вручную работает, и это также самый быстрый способ его испортить, поэтому пусть формат принадлежит инструменту. macOS хранит свои службы в системной конфигурации, а networksetup обращается к ним по имени службы; несколько флагов хотят адрес, а не имя хоста, поэтому сначала разрешите конечную точку и сохраните значение, которое клиент действительно использует. Это различие кусается при автоматизации, потому что скрипт, работающий с адресом, может отказать с именем, и ошибка выглядит как сломанный шлюз, а не как отклонённый аргумент.

networksetup -listallnetworkservices
networksetup -getinfo "ServiceName"
networksetup -setmanualwithdhcprouter "ServiceName" 198.51.100.20

Имена служб локализованы и доступны для правки пользователем, поэтому скрипт, жёстко кодирующий Wi-Fi ломается на первой машине, настроенной на другой язык. Читайте имя из команды списка и передавайте его дальше, вместо того чтобы угадывать.

Сертификаты без собственного клиента

Некоторым развёртываниям нужен клиентский сертификат и ничего больше собственного, и это промежуточный случай, который стоит проверить, прежде чем принимать драйвер. Размещение сертификата в хранилище платформы поддерживается; это не то же действие, что бросить туда корневой сертификат поставщика и надеяться, что клиент его найдёт. Первое — осознанное размещение; второе — догадка с приложенной заявкой в поддержку.

Деталь, которая ловит людей, — какое хранилище читает клиент. Сертификат в хранилище пользователя невидим для клиента, настроенного на хранилище машины, и полученное сообщение говорит, что сертификата нет, а не что он лежит не там. Проверьте оба хранилища, прежде чем заключить, что сертификат неверен. Запишите, какое из них использует рабочая конфигурация, потому что эта заметка переживёт сертификат, когда машину пересоберут.

Windows явно разделяет два хранилища, а macOS отделяет связку ключей входа от системной связки ключей. Имена различаются, но режим отказа идентичен: действительный сертификат, на который клиент никогда не смотрит.

Что заставляет ставить установщик

Некоторые шлюзы привязывают клиент к частному хранилищу сертификатов, агенту состояния или обмену входа, который операционная система не может выполнить. Развёртывания на оборудовании Check Point, Cisco или Fortinet часто оказываются там, и в них встроенный клиент не является коротким путём. Замена от третьей стороны может подключиться и всё же нарушить политику, что делает это решением по безопасности, а не по удобству. Установите то, что требует политика, и запишите причину рядом с версией установщика.

Эта запись — та часть, которую люди пропускают, и та, что экономит следующему администратору неделю: протокол, метод аутентификации, семейство адресов и требуемый суффикс, с одной строкой обоснования для каждого двоичного файла, который пришлось добавить. Положите её туда, где живут заметки установщика, а не в ветку чата. Две строки документации предотвращают повторное расследование.

Похожие статьи