Клиенты OpenVPN держат ключи на смарт-карте ETOKEN Pro 72 (Java). На Windows все работает. Хотим перевести клиентов на Linux. Беру Стартеркит Р9 mate x64. Ставлю последний драйвер етокена SafenetAuthenticationClient10.7.77, он видит Etoken и ключ\сертификат на нем, как и под Windows. Также доустанавливаю пакеты (подсмотрел их у P9Workstation):
apt-get install card-actions openct opensc pcsc-tools pcsc-lite pcsc-lite-acsccid pcsc-lite-asedriveiiie-usb pcsc-lite-ccid pcsc-lite-openct pam_pkcs11 pam_p11 openssl openssl-engines
Беру за образец конфига дла клиента OpenVPN: /usr/share/doc/openvpn-2.4.7/client.conf и кладу в /etc/openvpn/, указываю его в MANUAL в /etc/sysconfig/openvpn, чтобы не запускался при загрузке ОС.
Для client.conf: владелец root группа openvpn права 640.
Библиотека провайдера: /lib64/libeToken.so.10.7.77
Делаю в терминале команду: openvpn --show-pkcs11-ids /lib64/libeToken.so.10.7.77 и она даёт значение pkcs11-id такое-же, как и под Windows, с этим pkcs11-id под Windows клиент работает.
Содержание client.conf:
client
dev tun
proto udp
remote сервер порт
resolv-retry infinite
nobind
user openvpn
group openvpn
persist-key
persist-tun
ca /etc/openvpn/keys/ca.crt
pkcs11-providers /lib64/libeToken.so.10.7.77
pkcs11-id 'правильныйID'
pkcs11-cert-private 1
remote-cert-tls server
tls-auth /etc/openvpn/keys/ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3
auth-retry interact
Директива pkcs11-cert-private 1 - т.к. только с этой директивой происходит запрос пароля токена.
Ключи ca.crt и ta.key лежат в /etc/openvpn/keys/
Запускаю клиента OpenVPN:
openvpn --config /etc/openvpn/client.conf
Mon Dec 7 14:42:38 2020 OpenVPN 2.4.7 x86_64-alt-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jun 11 2019
Mon Dec 7 14:42:38 2020 library versions: OpenSSL 1.1.1g 21 Apr 2020, LZO 2.10
Mon Dec 7 14:42:38 2020 PKCS#11: Adding PKCS#11 provider '/lib64/libeToken.so.10.7.77'
Enter fedia token Password: ввожу правильный пароль
Mon Dec 7 14:42:50 2020 PKCS#11: Cannot set certificate for openssl
Mon Dec 7 14:42:50 2020 Cannot load certificate "правильныйID" using PKCS#11 interface
Mon Dec 7 14:42:50 2020 SIGUSR1[soft,private-key-password-failure] received, process restarting
Mon Dec 7 14:42:50 2020 Restart pause, 5 second(s)
Enter fedia token Password:
И так по кругу до бесконечности.
Гуглил эти ошибки и ничего не нашёл.
Кто-нибудь знает, как под Linux запустить клиент OpenVPN с ключём на Etoken?
P.S. : не нашёл возможности работать со смарт-картой через GUI: в NetworkManager и alterator можно только файлы ключей указывать, а не смарт-карту.