При работе по установке Firefox официальный интерфейс SSL VPN Extender в вопросе VPN SSL Network Extender в Firefox , я обнаружил и решил еще несколько частей головоломки этого вопроса.
Очевидно, что хотя использование командной строки snxиз контрольной точки было прекращено, веб-клиент, как описано в связанном посте, все еще работает. Однако есть клиент командной строки python, который пытается реплицировать интерфейс Web + Java поверхsnx клиента, и этот пост посвящен настройке его работы.
Во-первых, snxvpустановленное из python pipне работает. На https://github.com/agnis-mateuss/snxvpn имеется обновленная исправленная версия , в которой есть несколько полезных исправлений, в том числе опция игнорирования неподписанных и / или просроченных сертификатов, и что более интересно, совместимость с python2 и python3.
Кроме того, все URL-адреса snxconnect.pyдолжны быть изменены с sslvpn/``.
Итак, пошаговые инструкции примерно такие:
1) Во-первых, установка snx установки:
Если в VPN, чтобы получить установочный файл, выполните:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
В противном случае вам придется получить его из веб-интерфейса, как описано в связанном ответе.
Для Debian вам может понадобиться:
sudo dpkg --add-architecture i386
sudo apt-get update
Мне пришлось установить следующее:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Запустите тогда:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Теперь у вас будет /usr/bin/snx32-битный клиентский двоичный исполняемый файл. Проверьте, отсутствуют ли какие-либо динамические библиотеки с:
sudo ldd /usr/bin/snx
Вы можете перейти к следующим пунктам, когда все зависимости удовлетворены.
Не уверен, если вам нужно запустить snx -s CheckpointURLFQDN -u USERперед использованием snxconnect, чтобы подпись VPN была сохранена на/etc/snx/USER.db .
2) Теперь у нас есть snxconnect утилита python. Такая программа пытается эмулировать веб-интерфейс, и что более интересно, ей не требуется Java для аутентификации.
Итак, чтобы установить и настроить snxconnect, запустите от имени пользователя root:
apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev python-pip
pip install pytz
git clone https://github.com/agnis-mateuss/snxvpn
git clone git://git.code.sf.net/p/sfreleasetools/code releasetools
cd snxvpn
Now, as for taking out the /sslvpn URL, some Checkpoint appliances need it, some do not. I am not still aware of why the difference. I need it, @WileyMarques does not.
sed -i "s/sslvpn\///g" snxconnect.py
, затем сделайте от имени root для python3: (рекомендуется)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
, или вместо этого сделайте от имени root для python2:
apt-get install python-docutils python-libxml2 python-lxml python-dev python-bs4 python-beautifulsoup
sed -i "s/distutils.core/setuptools/g" setup.py
make
python setup.py install --prefix=/usr/local
3) После его установки вы можете запускать как непривилегированный пользователь:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Если все прошло нормально, он запросит пароль, а затем отобразит:
SNX connected, to leave VPN open, leave this running!
Если у вас возникают проблемы с получением этого сообщения, и вместо этого вы получаете несколько раз подряд сообщение: «Неожиданный ответ, попробуйте еще раз», выполните метод Firefox, а затем правильно отключите и выйдите из системы, подождите пару минут, прежде чем пытаться выполнить snxconnectкоманда снова.
4) Файл cookie (s) будет создан в ~ / .snxcookies после успешного использования.
После установки VPN вы можете проверить ip addressили у ifconfigвас теперь есть tunsnxинтерфейс:
$ ip addr show dev tunsnx
14: tunsnx: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 10.x.x.x peer 10.x.x.x/32 scope global tunsnx
valid_lft forever preferred_lft forever
inet6 fe80::acfe:8fce:99a4:44b7/64 scope link stable-privacy
valid_lft forever preferred_lft forever
ip routeпокажет вам также новые маршруты, проходящие через tunsnxинтерфейс.
5) Для закрытия / отключения VPN, когда вы можете остановить / убить snxconnect, лучший и официальный способ - ввести команду:
$snx -d
SNX - Disconnecting...
done.
Кроме того, я также узнал:
snxconnectкажется, ведет себя лучше при отключении предыдущего VPN-подключения и выходе из официального веб-интерфейса, если есть какая-то странная проблема (попробуйте сделать, snx -dчтобы увидеть, если он дает тот же результат);
- PYTHONHTTPSVERIFY = 0 влияет только на версию python2;
- если веб-интерфейс выполняет перенаправление HTML во вторичное местоположение CheckPoint, указывающее непосредственно на это перенаправленное имя хоста, содержит лучшие результаты;
- если сертификаты брандмауэров являются самозаверяющими (часто таковыми являются), необходимо использовать параметр --skip-cert, иначе аутентификация не удастся;
- из-за того, что не было слишком много проблем с повторной аутентификацией, пришлось использовать --save-cookies для использования куки аутентификации, когда пользователь вошел в систему в удаленной точке VPN (время ожидания x часов);
- как описано в последнем вопросе, чтобы скрипт работал, параметр «При входе в систему запуска SSL Network Extender» должен быть изменен на «автоматически»;
- 7776 / TCP в localhost должен быть свободным,
snxчтобы владеть им, как snxconnectговорит с snxним;
- имя хоста, переданное
snxconnect/ snxобрабатывается как виртуальный хост, и поэтому вы не можете напрямую использовать IP-адрес VPN;
- установка 32-битной архитектуры является обязательным требованием для запуска
snx_install.shскрипта;
- вы можете использовать его в
python2качестве компромисса для меньшего пространства, однако, поскольку python2 постепенно сокращается,snxconnect в ближайшем будущем он может его не поддерживать;
- из использования интерфейса веб-клиента становится ясно, что мне нужно исправить / удалить все
/sslvpnстроки, поскольку мои URL-адреса не начинаются с /sslvpn. Я бы проверил ваш конкретный случай. Я абсолютно не знаю, связано ли наличие этой строки в коде со старой версией, хотелось бы получить обратную связь;
- в
snxconnectимени хоста CheckPoint должно быть точное имя, которое веб-интерфейс показывает вам после аутентификации, поскольку это веб-виртуальный хост. В противном случае вам не удастся установить VPN;
- При первом
snxиспользовании файл с подписью сервера VPN / Checkpoint будет создан по адресу/etc/snx/USER.db ;
- Если вам нужно использовать OTP из командной строки, вы должны использовать
snxconnectкак snxодин, не поддерживает его.