Check Point VPN в Linux: SNX — это не скачиваемый установщик
Скачать установщик Check Point для Linux нельзя. SNX приходит с портала шлюза, требует модуля Mobile Access и живёт со старым списком дистрибутивов.
Вы ищете клиент Check Point для Linux и не находите страницу загрузки с установщиком. Этого отсутствия не объяснить недоработкой упаковки. Клиент удалённого доступа Check Point для Linux — это SSL Network Extender, SNX, и шлюз выдаёт его вам после аутентификации в браузере. Когда это укладывается в голове, остальная путаница становится понятной, включая то, почему почти каждая статья об этом написана годы назад.
Миф: есть клиент, который скачивают и устанавливают
Такое ожидание приходит от всех остальных поставщиков. OpenVPN, WireGuard и большинство коммерческих клиентов публикуют пакет или репозиторий, а установка — локальное решение, которое вы принимаете сами. Check Point в Linux так не работает. В официальных загрузках для текущих версий шлюза нет отдельного установщика, поэтому поиск ведёт только к старым темам на форумах и зеркалам третьих сторон.
Эти зеркала хуже, чем бесполезны, потому что сборка должна соответствовать шлюзу, который её отдаёт.
Что такое SNX на самом деле и откуда он берётся
SNX — клиент командной строки, чей бинарный файл называется snx, и он устанавливается через сеанс, который вы запускаете в браузере против шлюза. Исторически его скачивал и устанавливал Java-апплет после того, как вы соглашались с запросом. Механизм за годы менялся, источник — нет. Шлюз отдаёт ту сборку, которая соответствует ему самому, поэтому версии клиента и шлюза идут парой, и поэтому клиент, скопированный из старого пакета, работает только пока шлюз ещё с ним говорит.
Это также значит, что шлюз должен быть готов раньше, чем любая работа на клиенте будет иметь смысл. Mobile Access Software Blade должен быть лицензирован и настроен, потому что без него нет портала, откуда ставить. Никакие усилия на стороне клиента не создадут сеанс со шлюзом, который его не предлагает.
Направьте клиент на шлюз со своим пользователем и прочитайте, что он сообщает:
snx -s vpn.example.com -u your.name
Ограничение — поддержка дистрибутивов, а не установщик
Список поддерживаемых дистрибутивов для SNX у поставщика короткий и старый. В опубликованной статье он заканчивается около Ubuntu 17.04, рядом с несколькими выпусками openSUSE, Fedora и RHEL той же эпохи, и в нём до сих пор числится Ubuntu 12.10. Это говорит о том, как список стареет, а не о том, что нужно вашей машине. Актуального дистрибутива в нём просто нет.
Ждите несовпадений библиотек раньше, чем рабочего туннеля. Обычные три — отсутствующие 32-битные библиотеки в 64-битной системе, версия OpenSSL, с которой бинарный файл никогда не связывался, и модуль ядра, который клиент пытается собрать. Читайте отсутствующие символы вместо того, чтобы угадывать пакеты:
ldd $(command -v snx) | grep "not found"
Затем сверьтесь со статьёй поддержки для того выпуска шлюза, к которому вы действительно подключаетесь. Список в блоге не является заявлением о совместимости, и более новый дистрибутив не означает более новый клиент.
Деталь про X11, которая делает возможной работу без экрана
SNX нужна библиотека X11, но не работающий X-сервер. Эта разница и есть вся разница между клиентом, который работает по SSH на хосте без экрана, и тем, который выглядит зависшим без вывода. Ставьте пакет библиотек из своего дистрибутива, а не набор, скопированный из другого выпуска, и запускайте клиент из того сеанса, которому нужен туннель.
После подключенияпрочитайте интерфейс и маршруты, прежде чем доверять любому из них:
ip -brief addr show
ip route show
SNX создаёт туннельный интерфейс и устанавливает маршруты, которые задаёт портал. Эти маршруты — решение шлюза, а не ваше, поэтому отсутствующий префикс — это проблема профиля на стороне шлюза, а не ошибка клиента. Проверьте заодно DNS, потому что профили с раздельным туннелем часто подсовывают резолвер, которого вы не ждали.
Когда SNX — совершенно неправильный ответ
Шлюзы Check Point умеют также завершать подключения IPsec иL2TPот клиента к сайту, и они работают с strongSwan, Libreswan или плагином L2TP от NetworkManager. Это конфигурация шлюза, а не трюк клиента. Если шлюз публикует только портал Mobile Access,клиенту IPsec не о чем договариваться, и в журнале будет тайм-аут вместо ошибки аутентификации. Спросите, какие модули удалённого доступа включены, прежде чем ставить что-то ещё.
Каждое ограничение здесь живёт на стороне шлюза: модуль, лицензия, сборка клиента и профиль маршрутов. CLI работает годами. Ломается допущение, что поддержка Linux означает пакет, которым вы владеете и управляете.