Подключение к vpn через yubikey на ubuntu

Kate

Administrator
Команда форума
Не так давно я столкнулся с проблемой подключения к vpn при помощи аппаратного usb-токена. Мне предоставили инструкцию, но оказалось, что она актуальна только для Windows, а у меня на ноуте Ubuntu.

Прежде, чем мне успешно удалось подсоединиться к серверу, было потрачено достаточное количество времени и некоторый объем нервных клеток. Так что, если вы оказались в схожей ситуации, мой опыт, возможно, вам поможет.

Итак, исходные данные:

  • usb-токен с предустановленными сертификатами
  • Файл конфигурации подключения с расширением .visz(такие генерирует Velocity - vpn клиент для windows и MacOS)
  • Ubuntu 22.04 на клиентском (моем) компьютере
Какие конкретно возникли вопросы:

  1. Как использовать предоставленную конфигурацию для подключения?
  2. Как дать возможность системе видеть смарт-карты?
  3. Как собственно подключаться к vpn?
В реальности я решал их именно в таком порядке. Но проще пойти немного по-другому. Сначала установить драйвера для аппаратных ключей, а уже затем реализовать подключение.

Устанавливаем библиотеки​

Нам понадобятся несколько библиотек для работы с токенами:

sudo apt updat
sudo apt install opensc opensc-pkcs11 pcscd
  • opensc, opensc-pkcs11: набор библиотек и утилит для доступа к смарт-картам и токенам
  • pcscd: менеджер ресурсов, координирующий связь с токенами, либо с устройствами считывания смарт карт
Далее устанавливаем openvpn:

sudo apt-get install openvpn

Проверяем, все ли работает​

Узнаем ID контейнера, в котором на смарт-карте хранятся ключ и сертификат:

openvpn --show-pkcs11-ids
Копируем Serialized id нужного нам сертификата.

Если openvpn --show-pkcs11-ids говорит, что слоты отсутствуют, необходимо проверить подключение смарт-карты:

opensc-tool -l
В случае ответа, что ключ-карта отсутствует, надо проверить запущен ли демон pcscd:

sudo service pcscd status
и включить его при необходимости:

sudo service pcscd start

Настраиваем openvpn конфигурацию​

Следующим шагом возвращаемся к предоставленной нам конфигурации (.visz).

Распаковываем как .tar.gz в подходящую папку и открываем файл config.conf.

Делаем замену {path} в строке pkcs11-providers {path}:

pkcs11-providers /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
Следующей строкой добавляем:

pkcs11-id '{Serialized id из прошлого пункта}'
Сохраняем файл.

Подключаемся​

sudo openvpn --config config.conf
Вводим pin при запросе. Всё, мы в сети.

Примечание​

Логичным шагом было бы ещё запускать pcscd как службу:

sudo systemctl enable pcscd
Но при этом Ubuntu включает вход в систему по смарт-карте, что мне было не нужно. Возможно, как-то можно этот момент обойти, но я решил проблему простой командой в .bash_aliases, которую запускаю, если хочу подключиться к vpn.

.bash_aliases
alias vpn="cd ~/.vpn; sudo service pcscd start; sudo openvpn --config config.conf"
P.S. Некоторые материалы, на которые опирался при поиске решения:

 

LavillMat

Member
methyl 4 tert butylbenzoate 98% - купить онлайн в интернет-магазине химмед
Tegs: poly ethylene glycol methyl ether meth - купить онлайн в интернет-магазине химмед
poly ethylene glycol methyl ether thio - купить онлайн в интернет-магазине химмед
poly ethylene glycol methyl ether thio - купить онлайн в интернет-магазине химмед

methyl 4 tert butylbenzoate 98% - купить онлайн в интернет-магазине химмед https://chimmed.ru/products/methyl-4-tert-butylbenzoate-98-id=4393721
 

LavillMat

Member
mabn2263 25ug anti zmym2, clone 9f12 1 - купить онлайн в интернет-магазине химмед
Tegs: n 1, 3 benzodioxol 5 ylmethyl cyclopentanamine hydrochloride 95% - купить онлайн в интернет-магазине химмед
n 1, 3 benzodioxol 5 ylmethyl cyclopropanamine hydrochloride 95% - купить онлайн в интернет-магазине химмед
n 1, 3 benzodioxol 5 ylmethyl methanesulfonamide - купить онлайн в интернет-магазине химмед

mabn2265 anti chd 8, clone 7f4 1 - купить онлайн в интернет-магазине химмед https://chimmed.ru/products/mabn2265-anti-chd-8-clone-7f41-id=1551430
 
Сверху