Регистрация Debian KEK вручную

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

0
24.05.2020, 15:17
1 ответ

Единственный известный мне сертификат 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,но их администрирование совершенно не зависит от прошивки и ее возможных багов.

1
18.03.2021, 23:33

Теги

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