При работе по установке 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/snx
32-битный клиентский двоичный исполняемый файл. Проверьте, отсутствуют ли какие-либо динамические библиотеки с:
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
один, не поддерживает его.