получение Checkpoint VPN SSL Network Extender, работающего в командной строке

Вы можете:

sudo -H -u name bash -c '[ -f "$HOME"/file ] || echo "file not found"'

[-f "$ HOME" / файл] || echo «файл не найден» делает именно то, что вы пытаетесь сделать с if..then .

От man sudo :

-H, --set-home

Запросить, чтобы политика безопасности установила для переменной среды HOME домашний каталог, указанный целевым запись в базе паролей пользователя. В зависимости от политики это может быть поведение по умолчанию.

10
30.10.2018, 07:21
2 ответа

Сборка SNX 800007075 от 2012 г., используемая для поддержки CheckPoint VPN из командной строки Linux. Итак, я протестировал его, и о чудо, он все еще работает с последними дистрибутивами и ядром (s )4.x/5.x.

Итак, в конечном счете, мой другой ответ в этой теме остается верным,если вы не можете получить сборку SNX 800007075 или если эта конкретная версия SNX перестанет работать с текущими версиями Linux (это может произойти в ближайшем будущем)или если вам нужен одноразовый пароль служба поддержки.

В настоящее время решение заключается в установке этой конкретной последней версии SNX, которая по-прежнему поддерживает выполнение VPN из командной строки.

  1. Чтобы установить snxсборку 800007075, загрузите ее из:
wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh

Для Debian и Debian -на основе 64 -битных систем, таких как Ubuntu и Linux Mint, может потребоваться добавить 32 -битную архитектуру:

sudo dpkg --add-architecture i386
sudo apt-get update    

Мне пришлось установить следующие 32 -битные пакеты:

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

Затем запустите snxсценарий установки:

chmod a+rx snx_install.sh
sudo./snx_install.sh`

Теперь у вас будет /usr/bin/snx32 -битный исполняемый клиентский двоичный файл. Проверьте, отсутствуют ли какие-либо динамические библиотеки с помощью:

sudo ldd /usr/bin/snx

Вы можете перейти к следующим пунктам только тогда, когда все зависимости будут удовлетворены.

Возможно, вам придется сначала запустить snx -s CheckpointURLFQDN -u USERвручную, прежде чем создавать сценарии для любого автоматического использования, чтобы сигнатура VPN была сохранена в /etc/snx/USER.db.

  1. Прежде чем использовать его, вы создаете ~/.snxrc file, using your regular user (not root)со следующим содержимым:

    server IP_address_of_your_VPN
    username YOUR_USER
    reauth yes
    
  2. Для подключения введитеsnx

    $ snx Linux SNX от Check Point сборка 800007075 Пожалуйста, введите ваш пароль:

    SNX -подключен.

    Параметры сеанса:

    IP-адрес офисного режима :10.x.x.x DNS-сервер :10.x.x.x Дополнительный DNS-сервер :10.x.x.x DNS-суффикс :xxx.xx, xxx.xx Время ожидания :24 часа

Если вы понимаете риски безопасности, связанные с жестким кодированием пароля VPN в скрипте, вы также можете использовать его как:

echo 'Password' | snx
  1. Для закрытия/отключения VPN, пока можно остановить/убить snx,лучший и официальный способ - дать команду:

    $snx -д SNX -Отключение... Выполнено.

см. также Проблемы с конфигурацией инструмента Linux Checkpoint SNX для уточнения того, какую snxверсию использовать.

  1. Для автоматизации входа в систему и принятия новой подписи (и понимания последствий для безопасности )я написал expectсценарий, который я назвал сценарием snx_login.exp; не очень безопасно, однако вы можете автоматизировать свой вход в систему, вызвав его с паролем в качестве аргумента:

    #!/usr/bin/ожидание порождение /usr/bin/snx

    установить пароль [lindex $argv 0]

    ожидать " ?пароль:" отправить --"$пароль\r"

    ожидать { "о :" { отправить "г\г" exp _продолжить } конец }

ПС. Остерегайтесь, что snxне поддерживает только OTP, вам придется использовать скрипт snxconnect, представленный в другом ответе, если вы используете его.

PPS @gibies обратил мое внимание на то, что при использовании etoken поле пароля получает пароль плюс добавленный etoken, а не фиксированный пароль.

33
20.08.2021, 11:16

Работая над установкой официального интерфейса 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.

  1. Теперь у нас есть утилита snxconnectpython. Такая программа пытается эмулировать веб-интерфейс, и, что более интересно, для аутентификации ей не требуется 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
  1. После установки вы можете работать как непривилегированный -пользователь:

    /usr/local/bin/snxconnect -H CheckpointURLFQDN -U ПОЛЬЗОВАТЕЛЬ --пропустить -сертификат --сохранить -файлы cookie

Если все прошло нормально, он запросит пароль, а затем отобразит:

SNX connected, to leave VPN open, leave this running!

Если у вас возникли проблемы с получением этого сообщения, и вместо этого вы получаете несколько раз подряд сообщение :«Неожиданный ответ, попробуйте еще раз», выполните метод Firefox, отключитесь и выйдите из системы, подождав пару раз. минут перед повторной попыткой ввести команду snxconnect.

  1. Файл 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.

  1. Для закрытия/отключения VPN, хотя вы можете остановить/убить snxconnect, лучшим и официальным способом является ввод команды:

    $snx -д

    SNX -Отключение... Выполнено.


Кроме того, я также узнал:

  • snxconnectкажется, что при отключении предыдущего VPN-подключения и выходе из официального веб-интерфейса ведет себя лучше если есть какая-то странная проблема(нужно попробовать выполнить snx -d, чтобы увидеть, даст ли это тот же результат )] ;
  • PYTHONHTTPSVERIFY=0 влияет только на версию python2;
  • если веб-интерфейс выполняет перенаправление HTML на дополнительное местоположение CheckPoint, указывая непосредственно на это перенаправленное имя хоста,удерживает лучшие результаты;
  • если сертификаты брандмауэров являются само -подписанными (они часто являются )следует использовать опцию --пропуска -сертификата, иначе аутентификация не удастся;
  • для того, чтобы не было так много проблем с -аутентификацией, пришлось использовать --сохранить -файлы cookie, чтобы использовать файлы cookie аутентификации, когда пользователь вошел в удаленную точку VPN (, у него есть тайм-аут х часов );
  • как описано в последнем вопросе, чтобы скрипт работал, параметр «При подписании -в запуске SSL Network Extender» должен быть изменен на «автоматически»;
  • 7776/TCP на локальном хосте должен быть свободен, чтобы 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сам по себе не поддерживает его.
12
20.08.2021, 11:16

Теги

Похожие вопросы