Page tree

Versions Compared

Key

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

...

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

Panelcode
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)

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


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

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

Panelcode
pam_pkcs11 {
  nullok = false;
  debug = true;
  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 = subject;
 
  mapper_search_path = /usr/lib64/pam_pkcs11;
 
  mapper subject {
        debug = true;
        module = internal;
        ignorecase = false;
        mapfile = file:///etc/pam_pkcs11/subject_mapping;
  }
}

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


Panelcode
cd /etc/pam_pkcs11/
sudo mv pam_pkcs11.conf pam_pkcs11.conf.default (резервное копирование)
sudo mkdir cacerts crls
sudo cp /home/<имя_пользователя>/Desktop/pam_pkcs11.conf /etc/pam_pkcs11/


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

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

Panelcode
sudo vim /etc/pam.d/system-auth


Добавьте туда строку со следующим содержимым:

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


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

Panelcode
sudo pkcs11_inspect


На выходе вы увидите сообщение:

...

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

Panelcode
su oleg


Вывод будет примерно следующим:

...