Работая над установкой официального интерфейса 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/
на ``.
Таким образом, шаг -по -пошаговым инструкциям примерно соответствует:
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
.
snxconnect
python. Такая программа пытается эмулировать веб-интерфейс, и, что более интересно, для аутентификации ей не требуется Java.Итак, чтобы установить и настроить snxconnect
, запустите от имени пользователя root:
apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev
apt-get -y install 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-pip 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
После установки вы можете работать как непривилегированный -пользователь:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U ПОЛЬЗОВАТЕЛЬ --пропустить -сертификат --сохранить -файлы cookie
Если все прошло нормально, он запросит пароль, а затем отобразит:
SNX connected, to leave VPN open, leave this running!
Если у вас возникли проблемы с получением этого сообщения, и вместо этого вы получаете несколько раз подряд сообщение :«Неожиданный ответ, попробуйте еще раз», выполните метод Firefox, отключитесь и выйдите из системы, подождав пару раз. минут перед повторной попыткой ввести команду snxconnect
.
После установки VPN вы можете проверить с помощью ip address
или ifconfig
теперь у вас есть интерфейс tunsnx
:
$ ip addr show dev tunsnx
14: tunsnx: 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
.
Для закрытия/отключения VPN, хотя вы можете остановить/убить snxconnect
, лучшим и официальным способом является ввод команды:
$snx -д
SNX -Отключение... Выполнено.
Кроме того, я также узнал:
snxconnect
кажется, что при отключении предыдущего VPN-подключения и выходе из официального веб-интерфейса ведет себя лучше если есть какая-то странная проблема(нужно попробовать выполнить snx -d
, чтобы увидеть, даст ли это тот же результат )] ; snx
владел им, поскольку snxconnect
ведет переговоры с snx
, используя его; snxconnect
/ snx
, обрабатывается как виртуальный хост, и поэтому вы не можете напрямую использовать IP-адрес VPN; snx_install.sh
скрипта; python2
в обмен -на меньшее пространство, однако, поскольку python2 постепенно прекращается, snxconnect
в ближайшем будущем может не поддерживать его; /sslvpn
, так как мои URL-адреса не начинаются с /sslvpn
. Я бы проверил ваш конкретный случай. Я абсолютно не знаю, связано ли присутствие этой строки в коде со старой версией, хотелось бы услышать отзыв; snxconnect
имя хоста CheckPoint должно быть точным именем, которое веб-интерфейс показывает вам после аутентификации, поскольку это виртуальный веб-хост. В противном случае вам не удастся установить VPN; snx
файл с подписью сервера VPN/Checkpoint будет создан по адресу /etc/snx/USER.db
; snxconnect
, так как snx
сам по себе не поддерживает его.Единственный известный мне сертификат Debian Secure Boot можно найти здесь:https://dsa.debian.org/secure-boot-ca
Согласно спецификациям безопасной загрузки, если вы удалите текущий PK, безопасная загрузка должна перейти в «режим настройки», который позволит вам редактировать все ключевые переменные без необходимости подписи.
Если вы планируете получить контроль над ключами Secure Boot уровня прошивки -, замена PK на свой должна быть в ваших планах в любом случае.
Правила безопасной загрузки в основном:
dbx
, это означает, что загрузчик занесен в черный список и не будет выполняться. db
или загрузчик подписан сертификатом, который можно найти в db
, он будет выполнен. db
и/или dbx
(, например, для предоставления обновлений черного списка ), обновления должны быть подписаны сертификатом, который можно найти в KEK
... если PK
не существует, что означает, что платформа находится в режиме настройки безопасной загрузки и ключи можно менять без ограничений. KEK
, обновления должны быть подписаны сертификатом, который можно найти в PK
... если PK
не существует. PK
сертификат, не более. Прокладка загрузчика безопасной загрузки shimx64.efi
предназначена для помощи в случае, если переменные безопасной загрузки микропрограммы не могут быть изменены. Он подписан Microsoft и добавляет еще одну категорию ключей — MOK
. Когда используется загрузчик прокладки, клавиши MOK (и )в основном эквивалентны клавишам db
,но их администрирование совершенно не зависит от прошивки и ее возможных багов.