Created attachment 22196 [details] Запись экрана Шаги ==== 1. Установить пакеты: # apt-get install opensc pcsc-lite pam_pkcs11 librtpkcs11ecp pcsc-lite-ccid openssl-engine_pkcs11 nss-utils pcsc-tools pamtester 2. Запустить сервис: # systemctl start pcscd 3. Проверить, что токен определяется: # pcsc_scan В выводе команды должно быть описание параметров токена 4. Очистить токен от старых тестовых сертификатов: # for i in cert privkey pubkey do pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -b -y ${i} -p <PASSWORD> --id 45 done 5. Сгенерировать новую ключевую пару: # pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45 6. Создать сертификат в формате PEM: Для openssl1.1: # openssl OpenSSL> engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines-1.1/libpkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -x509 -out CA.pem -text Для openssl3 (например, р11): # openssl engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines-3/libpkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib64/pkcs11/librtpkcs11ecp.so # openssl req -engine pkcs11 -new -key 45 -keyform engine -x509 -out CA.pem -text Ввести пароль от токена, в запросе имени указать имя пользователя, который будет входить по сертификатам (по умолчанию test). Пример заполнения: Country Name (2 letter code) [RU]: State or Province Name (full name) []:Kaluga Locality Name (eg, city) []:Obninsk Organization Name (eg, company) []:Basealt Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:test Email Address []:test@test.ru 7. Конвертировать сертификат из формата PEM в формат CRT: Для openssl1.1: OpenSSL> x509 -in CA.pem -out cert.crt -outform DER Для openssl3 (например, р11): # openssl x509 -in CA.pem -out cert.crt -outform DER 8. Сохранить сертификат на аутентифицирующий носитель: # pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45 9. Отредактировать файл /etc/security/pam_pkcs11/pam_pkcs11.conf для установки аутентификации по «RUTOKEN ЭЦП»: изменить use_pkcs11_module = opensc; на use_pkcs11_module = rutoken; добавить модуль rutoken: pkcs11_module rutoken { ca_dir = /etc/security/pam_pkcs11/cacerts; crl_dir = /etc/security/pam_pkcs11/crls; module = /usr/lib64/librtpkcs11ecp.so; cert_policy = subject; description = "Rutoken ECP"; slot_description = "none"; } 10. Включить сервисы поддержки смарткарт: # systemctl enable pcscd # systemctl restart pcscd 11. Включить системную аутентификацию по смарткартам: # control system-auth pkcs11 12. Добавить информацию об удостоверяющем центре на машину: # cp CA.pem /etc/security/pam_pkcs11/cacerts/ # certutil -A -n 'Root CA' -t 'CT,C,C' -a -d /etc/pki/nssdb/ -i ./CA.pem 13. Добавить информацию о сертификате в домашний каталог пользователя: # mkdir /home/test/.eid/ # cat CA.pem > /home/test/.eid/authorized_certificates 14. Добавить пользователя без сертификатов: # useradd test2 && passwd test2 15. Перезагрузиться 16. Ввести имя пользователя `test`, затем PIN от токена. Фактический результат ===================== * Невозможен вход с помощью токена в GDM (сначала просто возвращает к вводу PIN и надписи `Найден токен` после показа `Verifying certificate` и `Checking signature`, на второй попытке показывает `Ошибка проверки подлинности`). ** Прикреплено видео с sisyphus. ** Прикреплён journalctl с sisyphus. * Невозможна разблокировка экрана с помощью токена после входа без токена (не предлагается). Ожидаемый результат =================== * Возможен вход с помощью токена в GDM. * Возможна разблокировка экрана с помощью токена после входа c токеном или без него. Воспроизводимость ================= Воспроизводится на виртуальных машинах: [p11] ALT Workstation 11.2 x86_64 gdm-48.0-alt5.x86_64 pam-1.7.1-alt1.x86_64 pam_pkcs11-0.6.13.1-alt1.x86_64 [p11+431896.1] ALT Workstation 11.2 x86_64 gdm-48.0-alt5.x86_64 pam-1.7.1-alt1.x86_64 pam_pkcs11-0.6.14-alt1.x86_64 [sisyphus] ALT Workstation 11.2 x86_64 gdm-50.3-alt1.x86_64 pam-1.7.2-alt1.x86_64 pam_pkcs11-0.6.14-alt1.x86_64
Created attachment 22197 [details] journalctl