Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3
minLevel2


Info

Подключите устройств семейства Рутокен ЭЦП к компьютеру.

Перед началом работы, установите следующие пакеты:

Code Block
sudo yumdnf update
sudo yumdnf install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit


Загрузите модуль librtpkcs11ecp.so и установите:

Code Block
sudo rpm -i librtpkcs11ecp-2X.0X.4X.0X-1X.x86_64.rpm

Создание ключей и сертификатов

Для Проверьте наличие  libpkcs11.so по пути: /usr/lib64/engines-1.1/. Если ее нет, то для начала установите libpkcs11.so для того, чтобы OpenSSL смог общаться к Рутокеном.

...

Для этого соберите библиотеку libp11 из репозитория. Вместе с ней идет libpkcs11.so начиная с версии 0.4.

...

Code Block
openssl

OpenSSL> openssl engine dynamic -pre SO_PATH:/usr/lib64/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 0:45 -keyform engine -x509 -out cert.crt -outform DER

...

Code Block
openssl

OpenSSL> openssl engine dynamic -pre SO_PATH:/usr/lib64/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 0:45 -keyform engine -out request.req

...

Проверьте, что токен подключен и на нем сохранены сертификаты и ключи.

Добавление сертификата в список доверенных 

Создайте базу данных доверенных сертификатов

Code Block
sudo mkdir /etc/pam_pkcs11/nssdb

sudo chmod 0644777 /etc/pam_pkcs11/nssdb

sudo certutil -d /etc/pam_pkcs11/nssdb -N # создание базы данных

sudo modutil -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so

...

Code Block
sudo cp cert.crt /etc/pki/ca-trust/source/anchors/ # команда вводится из директории, в которую был помещён сертификат

sudo update-ca-trust force-enable

sudo update-ca-trust extract # может занять некоторое время


Настройка pam_pkcs11

Создайте (например, на рабочем столе) текстовый файл pam_pkcs11.conf со следующим содержимым:

...

Code Block
cd /etc/pam_pkcs11/

sudo mv pam_pkcs11.conf pam_pkcs11.conf.default #резервное копирование

sudo mkdir cacerts crls

sudo cp /path/to/your/pam_pkcs11.conf /etc/pam_pkcs11/

...


 Регистрация модуля PAM PKCS11 для аутентификации в системе 

Подключите модуль к системе авторизации PAM:

...

В результате отобразится сообщение:

[user@redos ~]$ sudo pkcs11_inspect
PIN for token:

...

 
Printing data for mapper digest:
CB:13:CA:34:AC:04:CD:BF:A6:17:29:2F:C8:00:6A:D5:54:B8:0B:BB

Скопируйте строчку с описанием сертификата в файл /etc/pam_pkcs11/digest_mapping в формате:

Code Block
<вывод команды pkcs11_inspect> -> <имя_пользователя>

...

Пример заполнения файла:

[user@redos ~]$ sudo cat /etc/pam_pkcs11/digest_mapping 
CB:13:CA:34:AC:04:CD:BF:A6:17:29:2F:C8:00:6A:D5:54:B8:0B:BB -> user


Попробуйте аутентифицироваться:

Code Block
su <username>

...

Терминал должен запросить PIN код рутокена:

[user@redos ~]$ su user
Smart card found.
Добро пожаловать Rutoken ECP <no label>!
Smart card PIN: 
verifying certificate
Checking signature
[user@redos ~]$ 

В окне экрана приветствия аналогично:


Настройка автоблокировки

В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.

...