Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »


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

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

sudo yum update
sudo yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit

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

sudo rpm -i librtpkcs11ecp-2.0.4.0-1.x86_64.rpm

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

Для начала установите libpkcs11.so для того, чтобы OpenSSLL смог общаться к Рутокенам.

Способ 1

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

Способ 2

Скачайте два пакета libp11 и engine_pkcs11 из репозитория Fedora и установите их с помощью команд:

Установка пакетов
sudo rpm-i <rpm_name>


Вы можете пропустить данный раздел, если у вас уже имеются необходимые RSA ключи.
Если ключей нет, ниже команда по их созданию:

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

Параметр id задает идентификатор ключевой пары.


Теперь нужно получить сертификат:

  • создайте самоподписанный сертификат:
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


  • или создайте запрос на сертификат для передачи его в УЦ:

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


Поместите сертификат его на токен:

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45

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

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

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

sudo mkdir /etc/pam_pkcs11/nssdb

sudo chmod 0644 /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


Выгрузите ваш сертификат с токена (если вы пользовались вышеописанной инструкцией для получения сертификата, то ID = 45)

pkcs11-tool --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d <ID> -o cert.crt


Добавьте сертификат в доверенные

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 со следующим содержимым:

pam_pkcs11 {
  nullok = false;
  debug = false;
  use_first_pass = false;
  use_authtok = false;
  card_only = false;
  wait_for_card = false;
  use_pkcs11_module = rutokenecp;

  # Aktiv Rutoken ECP
  pkcs11_module rutokenecp {
    module = /usr/lib64/librtpkcs11ecp.so;
    slot_num = 0;
    support_thread = true;
    ca_dir = /etc/pam_pkcs11/cacerts;
    crl_dir = /etc/pam_pkcs11/crls;
    cert_policy = signature;
  }

  use_mappers = digest;

  mapper_search_path = /usr/lib64/pam_pkcs11;

  mapper digest {
   debug = false;
   module = internal;
   algorithm = "sha1";
   mapfile = file:///etc/pam_pkcs11/digest_mapping;
  }

}

Поместите файл в каталог /etc/pam_pkcs11/:


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:

sudo vim /etc/pam.d/system-auth
# Для входа по Рутокена на экране приветствия 
sudo vim /etc/pam.d/password-auth


Добавьте туда строку со следующим содержимым, перед первым ипользованием модуля pam_unix:

auth   sufficient             pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so


Сохраните файл и узнайте поля вашего сертификата с помощью следующей команды:

sudo pkcs11_inspect

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

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

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

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

su <username>

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

  • No labels