Подключение usb-токена jacarta в linux
Инструкция скорее для памяти самому себе.
Для работы с jacarta-токенами в linux первым делом нужно скачать с офф. сайта https://www.aladdin-rd.ru/support/downloads/jacarta_client/ пакет ПК "Единый Клиент JaCarta 3.3" для вашей операционной системы. Так как у меня дебиан (LMDE), то скачал тот, что для убунту и еже с ней. Для доступа к vpn потребовалось дополнительно установить:
sudo apt install opensc openconnect libengine-pkcs11-openssl gnutls-bin pcscd network-manager-openconnect-gnome
sudo dpkg -i jcpkcs11-2_2.11.2.1052_x64.deb
Для того, чтобы линуксовая p11tool могла работать с этим токеном делаем ссылку:
sudo sh -c "echo 'module:/usr/lib/libjcPKCS11-2.so' > /usr/share/p11-kit/modules/opensc.module"\
После проведённых манипуляций проверяем что токен доступен:
p11tool --list-tokens
Получим что-то типа этого:
Token 0:
URL: pkcs11:model=p11-kit-trust;manufacturer=PKCS%2311%20Kit;serial=1;token=System%20Trust
Label: System Trust
Type: Trust module
Flags: uPIN uninitialized
Manufacturer: PKCS#11 Kit
Model: p11-kit-trust
Serial: 1
Module: p11-kit-trust.so
Token 1:
URL: pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=4E46002023095046;token=username
Label: username
Type: Hardware token
Flags: RNG, Requires login
Manufacturer: Aladdin R.D.
Model: PRO
Serial: 4E4600121212121
Module: /usr/lib/libjcPKCS11-2.so
Проверям что доступны все объекты в контейнере на токене:
p11tool --list-all --login pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=4E4600121212121;token=username
Будет запрошен пин-код для доступа и выведено на экран следующее:
Enter PIN:
Object 0:
URL: pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=4E4600121212121;token=username;id=%xx%xx%xx%xx%xx%xx;type=private
Type: Private key (RSA-2048)
Label:
Flags: CKA_WRAP/UNWRAP; CKA_PRIVATE; CKA_NEVER_EXTRACTABLE; CKA_SENSITIVE;
ID: xx:xx:xx:xx:xx:xx
Object 1:
URL: pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=4E4600121212121;token=username;id=%xx%xx%xx%xx%xx%xx;object=XXXXXXXXXXXX;type=cert
Type: X.509 Certificate (RSA-2048)
Expires: Wed Sep 2 08:48:10 2026
Label: XXXXXXXXXXXX
ID: xx:xx:xx:xx:xx:xx
В выводе ID, username, serial - будут другие (тут я поменял от греха). Теперь можно создать соединение в NetworkManager. И, так как в GUI он не поддерживает работу с токеном (раньше так и было как сейчас не проверял) то добавляем из консоли. Для usercert берем то что было выведено на предыдущем этапе, в части касающейся x.509:
nmcli con add type vpn con-name vpn.server.ru ifname '*' vpn-type openconnect vpn.data 'usercert = pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=4E4600121212121;token=username;id=%xx%xx%xx%xx%xx%xx;object=XXXXXXXXXXXX;type=cert, gateway = vpn.server.ru, protocol = anyconnect, cookie-flags = 2'
Connection 'vpn.server.ru' (2232beab-7f31-4f9e-a524-123a32a0ab9c) successfully added.
На этом всё если все сделано правильно, и я нигде не ошибся, то должно работать.