Автор Тема: Клиент OpenVPN с ключом на Etoken-e  (Прочитано 3003 раз)

Оффлайн freddyb

  • Начинающий
  • *
  • Сообщений: 40
Клиенты 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 можно только файлы ключей указывать, а не смарт-карту.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #1 : 07.12.2020 22:33:42 »
PIN запрашивает. GUI нет потому, что никому не нужно.
Андрей Черепанов (cas@)

Оффлайн freddyb

  • Начинающий
  • *
  • Сообщений: 40
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #2 : 08.12.2020 11:37:27 »
PIN запрашивает. GUI нет потому, что никому не нужно.
И...? Клиент OpenVPN не работает.
PIN ввожу, но соединения не происходит.
GUI, действительно, особо не нужен, подошло-бы и в терминале подключаться, если бы подключалось.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #3 : 08.12.2020 12:35:30 »
PIN запрашивает. GUI нет потому, что никому не нужно.
И...? Клиент OpenVPN не работает.
PIN ввожу, но соединения не происходит.
GUI, действительно, особо не нужен, подошло-бы и в терминале подключаться, если бы подключалось.
Экспериментируйте. У меня давно не поддерживаемых eToken нет. А без них самих не протестируешь.
Андрей Черепанов (cas@)

Оффлайн freddyb

  • Начинающий
  • *
  • Сообщений: 40
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #4 : 08.12.2020 13:28:03 »
Пробовал разные опции добавлять, связанные с паролями: --askpass; pkcs11-protected-authentication 0 или 1; pkcs11-private-mode от 1 до 8
Не работает.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #5 : 08.12.2020 13:48:54 »
Пробовал разные опции добавлять, связанные с паролями: --askpass; pkcs11-protected-authentication 0 или 1; pkcs11-private-mode от 1 до 8
Не работает.
Попробуйте сертификат выгрузить с помощью pkcs11-tool --module /usr/lib64/libeToken.so.10
Андрей Черепанов (cas@)

Оффлайн freddyb

  • Начинающий
  • *
  • Сообщений: 40
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #6 : 08.12.2020 14:52:04 »
pkcs11-tool --module /usr/lib64/libeToken.so -O видит сертификат, в том числе его ID.

pkcs11-tool --module /usr/lib64/libeToken.so -r -y cert --id b18b нечто длинное выводит в консоль, наверное то, что и надо.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 233
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #7 : 08.12.2020 15:04:53 »
openvpn --show-pkcs11-ids /usr/lib64/libeToken.so.10что говорит? Это по идее и должно быть pkcs11-id

Оффлайн freddyb

  • Начинающий
  • *
  • Сообщений: 40
Re: Клиент OpenVPN с ключом на Etoken-e
« Ответ #8 : 08.12.2020 15:23:33 »
openvpn --show-pkcs11-ids /usr/lib64/libeToken.so.10что говорит? Это по идее и должно быть pkcs11-id

В первом сообщении я писал, что openvpn --show-pkcs11-ids /lib64/libeToken.so.10.7.77 даёт значение pkcs11-id такое-же, как и под Windows, с этим pkcs11-id под Windows клиент работает. Т.е. правильное значение pkcs11-ids