Check Point SNX и Ubuntu 17.10

Теги: vpn, ubuntu, linux

Так уж получилось, что на проекте, которым сейчас занимаюсь в рабочее время, для подключения к ресурсам внутренней сети используется довольно специфическое решение VPN от компании Check Point. К сожалению, стандартным VPN-клиентом, который имеется в Ubuntu, подключиться не получится, поэтому пришлось поставить специальный, который называется Check Point SNX. Без проблем, конечно, не обошлось, поэтому дальше напишу, как этих проблем можно избежать.

С установкой клиента всё довольно просто: можно просто зайти по адресу сервера, к которому предполагается подключение, через браузер, а оттуда уже можно скачать скрипт для установки. Остаётся только добавить файлу права на исполнение и запустить с правами суперпользователя. Буквально через пару секунд вы увидите сообщение об успешной установке.

Но не тут-то было, ибо при попытке запустить команду snx вы увидите что-то очень странное:

bash: /usr/bin/snx: No such file or directory

Согласитесь, неожиданно (особенно учитывая, что файл там есть :) Попытка же проверить зависимости, используя ldd вообще приведёт к сообщению, что это "неведомая зверушка", а не бинарник...

В чём же дело? Оказывается, что причина кроется как раз в нескольких отсутствующих библиотеках. Однако библиотеки нужны под архитектуру i386, поэтому вот так "красиво" всё ломается.

Для решения этой проблемы первым делом добавляем в список доступных архитектур нужную:

sudo dpkg --add-architecture i386

А после этого ставим пакеты "первой необходимости":

sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386

Теперь уже заработает ldd и можно будет определить нужные библиотеки:

chermenin@chermenin-laptop:~$ sudo ldd /usr/bin/snx | grep "not found"
  libX11.so.6 => not found
  libpam.so.0 => not found
  libstdc++.so.5 => not found

Ставим оставшиеся зависимости:

sudo apt install libx11-6:i386 libpam0g:i386 libstdc++5:i386

После установки пакетов можно создать подключение командой:

snx -s <имя или адрес сервера> -u <имя пользователя>

На этом можно всё оставить как есть, но я предлагаю добавить удобства. Для этого нужно создать простой файл ~/.snxrc и добавить туда информацию о сервере и пользователе:

server <имя или адрес сервера>
username <имя пользователя>

В результате после запуска команды snx без параметров останется только ввести пароль и подключение будет установлено.

Ну, на этом на сегодня всё.