Page tree

Versions Compared

Key

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

Table of Contents
maxLevel3
minLevel2

Tip

Подключите Рутокен ЭЦП 2.0 к компьютеру

Проверка работы Рутокен ЭЦП 2.0

  1. Подключите Рутокен ЭЦП 2.0 к компьютеру.
  2. Убедитесь в том, что на  USB-токене или считывателе для смарт-карт светится индикатор.
  3. Откройте Terminal.
  4. Для проверки корректности работы Рутокен ЭЦП 2.0 введите команду:
    $ pcsc_scan
  5. Нажмите на клавишу [ENTER].
  6. Если Рутокен ЭЦП 2.0 не работает, то в окне терминала отобразится сообщение об этом. 
  7. Если Рутокен ЭЦП 2.0 работает, то в окне терминала отобразится сообщение об этом.
    Такое сообщение в системе ALT Linux выглядит следующим образом:
  8. Для остановки сервиса pcscd введите команду:
    $ sudo service pcscd stop 
  9. Нажмите на клавишу [ENTER].

Аутентификация в CentOS 7 и Goslinux при помощи RSA ключей

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

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

...

sudo

...

yum

...

install

...

ccid

...

opensc

...

pam_pkcs11

...

gdm-plugin-smartcard

...

p11-kit

...

sudo

...

yum

...

remove

...

coolkey

Загрузите модуль librtpkcs11ecp.so из Комплекта разработчика и поместите его в директорию /usr/lib64 отсюда https://www.rutoken.ru/support/download/pkcs/ и установите

sudo rpm -i librtpkcs11ecp_1.9.15.0-1_x86_64.rpm

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

Для начала установите engine_pkcs11.so для того чтобы openssl смог общаться с токеном. Для этого соберите библиотеку libp11 из репозитория репоизиторя https://github.com/OpenSC/libp11/tree/libp11-0.4.10 . Вместе с ней идет engine_pkcs11.so начиная с версии 0.4

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

...

pkcs11-tool

...

--module

...

/usr/lib64/librtpkcs11ecp.so

...

--keypairgen

...

--key-type

...

rsa:2048

...

-l

...

--id

...

45

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

...

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

Поместите его на Рутокен ЭЦП 2.0:

...

токен

pkcs11-tool

...

--module

...

/usr/lib64/librtpkcs11ecp.so

...

-l

...

-y

...

cert

...

-w

...

cert.crt

...

--id

...

45

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

Проверьте, что Рутокен ЭЦП 2.0 токен подключен и сертификаты с ключами на нем имеются:

...

pkcs11-tool

...

--module

...

/usr/lib64/librtpkcs11ecp.so

...

-O

...

-l

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

...

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

...

=

...

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:

...

sudo

...

vim

...

/etc/pam.d/system-auth

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

...

auth

...

 

...

sufficient

...

pam_pkcs11.so

...

pkcs11_module=/usr/lib64/librtpkcs11ecp.so

...

debug

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

...

sudo

...

pkcs11_inspect

На выходе вы увидите сообщение:Image Removedчто-то такое. 

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

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

Image Removed

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

...

su

...

oleg

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

Image Removed

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

Аутентификация в CentOS 7 и Goslinux при помощи ГОСТ ключей

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

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

sudo yum remove coolkey

Проверьте, что у вас установлен openssl версии 1.1 и выше

Скачайте pam модуль и положите его по адресу /usr/lib64/securty (или /lib64/security для goslinux) https://download.rutoken.ru/Rutoken/PAM/1.0.0/x86_64/librtpam.so.1.0.0

Установите права доступа:

Code Block
sudo chmod 644 /usr/lib/x86_64-linux-gnu/librtpam.so.1.0.0

Загружаем библиотеку через браузер.

https://www.rutoken.ru/support/download/pkcs/

Проверяем, что все настроили правильно:

Code Block
pkcs11-tool --module /usr/lib64//librtpkcs11ecp.so -T

Далее потребуется скачать сертификат с Рутокена, если его нет, то генерируем его согласно следующему пункту

Генерация сертификата и отправка его на Рутокен

Warning
Собирайте OpenSC новее чем 0.19.0

https://github.com/OpenSC/OpenSC/

Создаем ключи на Рутокене:

Code Block
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-256:B -l --id 45

Узнайте где находится файл с конфигурацией и папка с энджинами openssl с помощью команды:

Code Block
openssl version -a

Скачайте rtengine, который можно найти в комплекте разработчика ( https://www.rutoken.ru/developers/sdk/ ) и поместите его в директорию энджинов

Зайдите в файл конфигурации openssl.cnf и впишите туда следующее:

...

/

...

Регистрация сертификата в системе

Скачиваем сертификат с Рутокена:

Code Block
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt

Конвертируем его в PEM формат:

Code Block
openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM

Добавляем сертификат в список доверенных сертификатов для данного пользователя:

Code Block
mkdir ~/.eid

chmod 0755 ~/.eid

cat cert.pem >> ~/.eid/authorized_certificates

chmod 0644 ~/.eid/authorized_certificates

Настройка аутентификации

Открываем файл /etc/pam.d/system-auth:

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

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

Code Block
auth sufficient librtpam.so.1.0.0 /usr/lib64/x86_64-linux-gnu/librtpkcs11ecp.so

Пробуем пройти аутентификацию:

Code Block
su oleg

Если все прошло успешно, то появится просьба ввести пароль от токена, иначе что-то пошло не так.

Узнать причину того, что пошло не так, можно через логи в /var/log/messages