Page tree

Versions Compared

Key

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

...

Для остановки сервиса pcscd введите команду:

Panel

$

...

sudo

...

service

...

pcscd

...

stop 

Настройка системы

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

Panel

sudo

...

yum

...

install

...

ccid

...

opensc

...

pam_pkcs11

...

gdm-plugin-smartcard

...

p11-kit

sudo

...

yum

...

remove

...

coolkey


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

Panel

sudo

...

rpm

...

-i

...

librtpkcs11ecp_1.9.15.0-1_x86_64.rpm


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

...

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

Panel

pkcs11-tool

...

--module

...

/usr/lib64/librtpkcs11ecp.so

...

--keypairgen

...

--key-type

...

rsa:2048

...

-l

...

--id

...

45

Теперь создайте самоподписанный сертификат:

Panel

openssl

OpenSSL>

...

engine

...

dynamic

...

-pre

...

SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so

...

-pre

...

ID:pkcs11

...

-pre

...

LIST_ADD:1 

...

-pre

...

LOAD

...

-pre

...

MODULE_PATH:/usr/lib64/librtpkcs11ecp.so

...

MODULE_PATH:/usr/lib64/librtpkcs11ecp.so

OpenSSL>

...

req

...

-engine

...

pkcs11

...

-new

...

-key

...

0:45

...

-keyform

...

engine

...

-x509

...

-out

...

cert.crt

...

-outform

...

DER

Поместите его на токен

Panel

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

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

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

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

Panel

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l


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

Panel

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)

Panel

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


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

Panel

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

Panel

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/:

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:

Panel

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


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

Panel

auth   sufficient pam_pkcs11.so

pkcs11_module=/usr/lib64/librtpkcs11ecp.so debug


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

Panel

sudo pkcs11_inspect


На выходе вы увидите что-то такое. 

Image Added

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

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

Image Added

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

Panel

su oleg


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

Image Added

Такой подробный вывод можно отключить, убрав опцию debug для pam модуля в файле конфигурации /etc/pam.d/system-auth