Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Введение

В данной инструкции описывается, как настроить лоукальную аутентификацию с помощью pam-p11, библиотеки librtpkcs11ecp.so и модуля pam-p11-gost.

Проверка модели устройства

  1. Подключите USB-токен к компьютеру.
  2. Для определения названия модели USB-токена откройте Терминал и введите команду:
$ lsusb 

В результате в окне Терминала отобразится название модели USB-токена:

Убедитесь, что используете: Aktiv Rutoken ECP

Общий порядок действий

1 Устанавливаем необходимые пакеты и их зависимости

Для этого вы можете воспользоваться Терминалом:

$ sudo apt-get install opensc libccid libpam-p11 libp11-2 libengine-pkcs11-openssl

Пуск - Настройки - Менеджер пакетов Synaptic

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

  • opensc
  • libccid
  • libpam-p11
  • libp11-2
  • libengine-pkcs11-openssl

2 Устанавливаем библиотеку librtpkcs11ecp.so

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

Для 32-битной системы используйте ссылку:

https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x32/librtpkcs11ecp.so

Для 64-битной системы используйте ссылку:

https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x64/librtpkcs11ecp.so

или через консоль

Пуск - Утилиты - Терминал Fly

Для 32-битной системы используйте:

 $ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x32/rtpkcs11ecp/librtpkcs11ecp.so

Для 64-битной системы используйте:

 $ wget --no-check-certificate https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x64/rtpkcs11ecp/librtpkcs11ecp.so

Копируем в системную папку.

Для 32- и 64-битной системы используйте:

$ sudo cp librtpkcs11ecp.so /usr/lib
$ sudo chmod 644 /usr/lib/librtpkcs11ecp.so

3 Проверяем работу токена или смарт карты в системе

Для проверки воспользуемся терминалом. Пуск - утилиты - Терминал Fly.

В терминале выполните команду:

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T 

В случае если увидите строку, показанную ниже, значит токен или смарт-карта работают корректно.

Rutoken ECP <no label> 

4 Устанавливаем модуль интеграции ГОСТ для OpenSSL

4.1 Скачиваем модуль интеграции ГОСТ для OpenSSL

Для загрузки этого модуля с нашего сайта вы можете воспользоваться ссылками.

Для 32-битной системы -  https://download.rutoken.ru/Rutoken/Support_OpenSSL/201808_10.04.2016/linux-x86/libpkcs11gost-engine.so

Для 64-битной системы - https://download.rutoken.ru/Rutoken/Support_OpenSSL/201808_10.04.2016/linux-x86_64/libpkcs11gost-engine.so

4.2 Копируем модуль интеграции ГОСТ в папку с другими модулями

Для 32- и 64-битной системы используйте:

$ sudo cp libpkcs11gost-engine.so /usr/lib/ssl/engines
$ sudo chmod 644 /usr/lib/ssl/engines/libpkcs11gost-engine.so

5 Настраиваем OpenSSL для работы с нашим модулем

Модифицируем конфигурационный файл OpenSSL, который находится по адресу /usr/lib/ssl/openssl.cn

Добавляем следующую информацию в начало файла:

openssl_conf            = openssl_def

а также, в конец файла:

[openssl_def]
engines = engine_section
 
[engine_section]
gost = gost_section
pkcs11 = pkcs11_section
 
[gost_section]
engine_id = gost
dynamic_path = /usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libgost.so
default_algorithms = ALL
init = 0
 
[pkcs11_section]
engine_id = pkcs11_gost
dynamic_path = /usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libpkcs11gost-engine.so
MODULE_PATH = /usr/lib/librtpkcs11ecp.so
init = 0

6 Считываем сертификат

Проверяем что на устройстве есть сертификат.

Пуск - утилиты - Терминал Fly

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O 

Если после строчки 

Using slot 0 with a present token (0x0) 

нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя пункту 4.1

Если после строчки

Using slot 0 with a present token (0x0)

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

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert  --id {id} > cert.crt

вместо {id} нужно подставить ID который вы увидите в выводе предыдущей команды команды

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O

В случае, если файл cert.crt создан переходим к пункту 5

6.1 Создаем самоподписанный сертификат

Пуск - утилиты - Терминал Fly

генерируем ключевую пару 

$ openssl genpkey -engine pkcs11_gost -algorithm GOST2001 -pkeyopt key_id:50 -pkeyopt paramset:A -pkeyopt pin:12345678
  • key_id - ID ключа на токене
  • paramset - используемые параметры эллиптической кривой:
    • A - набор параметров с OID 1.2.643.2.2.35.1;

    • B - набор параметров с OID 1.2.643.2.2.35.2;

    • C  - набор параметров с OID 1.2.643.2.2.35.3;

    • XA - набор параметров с OID 1.2.643.2.2.36.0;

    • XB - набор параметров с OID 1.2.643.2.2.36.1;

  • pin - PIN-код токена

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

$ openssl req -engine pkcs11_gost -new -key 50 -keyform engine -x509 -out cert.crt -outform DER

загружаем сертификат на устройство

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.crt --id 50

7 Регистрируем сертификат в системе

Пуск - утилиты - Терминал Fly

Конвертируем сертификат в текстовый формат

OpenSSL> x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Добавляем сертификат в список доверенных сертификатов

 

$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

 

8 Устанавливаем библиотеку pam-p11-gost

8.1 Скачиваем библиотеку с GitHub

Для загрузки последней версии исходных кодов библиотеки с сайта GitHub воспользуйтесь ссылкой - https://github.com/AktivCo/pam-p11-gost/archive/pkcs11-gost.zip

8.2 Подготовка к сборке

Перед сборкой pam-p11-gost убедитесь в том, что вы установили средства разработчика (gcc, make и прочие).

Вам так же надо установить следующие пакеты:

  • autoconf
  • libtool
  • pkg-config
  • libssl-dev
  • libpam0g-dev

Для сборки вам так же понадобиться Рутокен SDK, который вы можете скачать по ссылке - http://www.rutoken.ru/developers/sdk/

Распакуйте SDK в каталог ~/SDK и выполните команду

$ sudo cp ~/SDK/Samples/rtPKCS11/Include /usr/include/pkcs11

8.3 Устанавливаем библиотеку в систему

Для установки библиотеки извлеките скачанный архив pkcs11-gost.zip в домашний каталог пользователя.

Затем выполните следующий набор команд.

$ cd ~/pam-p11-gost-pkcs11-gost
$ mkdir m4
$ ./bootstrap
$ ./configure CFLAGS=-O2 --with-pamdir="/lib/x86_64-linux-gnu/security/" --enable-strict
$ make
$ sudo make install 

9 Настраиваем аутентификацию 

Пуск - утилиты - Терминал Fly

$ sudo nano /usr/share/pam-configs/p11

записываем в файл следующую информацию

Name: Pam_p11
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp.so
сохраняем файл, нажимаем Alt + X, а затем Y
после этого выполняем

 

$ sudo pam-auth-update

 

в появившемся окне ставим галку в Pam_p11 и нажимаем OK

10 Проверка

Пуск - утилиты - Терминал Fly

$ sudo login 

введите имя пользователя и в случае если система потребует PIN-код от устройства значит все настроено правильно

 

  • Нет меток