Page tree

Versions Compared

Key

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

Введение

Стенд

Нам понадобится токен или смарт-карта семейства Рутокен ЭЦП, отформатированные через Панель управления Рутокен.

Настройки для токена и смарт-карты идентичны.

Проверка модели токена

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

...

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

Image RemovedImage Added

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

Если вы используете смарт-карту Рутокен, то проверку проходить не требуется.

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

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

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

$  su

# sudo apt-get install opensc pam_pkcs11 pcsc-lite-ccid openssl-engine_pkcs11

...

  • opensc,
  • pam_pkcs11,
  • pcsc-lite-ccid,
  • openssl-engine_pkcs11.

2 Скачиваем и устанавливаем пакет для вашей системы

Если установка завершилась корректно, то в папке /usr/lib (или /usr/lib64) появится библиотека librtpkcs11ecp.so.

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

Подключаем токен или смарт-карту к компьютеру. Запускаем dmesg Запускаем dmesg и убедимся в том, что устройство опредилось определилось корректно.

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

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

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

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

4 Создаем ключевую пару

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

...

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

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

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

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

Image RemovedImage Added

Утилита pkcs11-tool входит в состав opensc.

...

--module <arg>путь к библиотеке pkcs11 (обязательный параметр)
--keypairgen
генерация ключевой пары
-- key-type <arg>задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы)
-lзапрос PIN-кода токена до каких-либо операций с ним (обязательный параметр)
--id <arg>

определяет id создаваемого объекта (понадобится при создании сертификата)

5 Создаем сертификат в формате PEM

Запускаем openssl и подгружаем модуль поддержки pkcs11:

...

$ openssl
OpenSSL>  engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so

Image RemovedImage Added

Создаем сертификат в PEM-формате. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.

OpenSSL>  req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem  -text

Image RemovedImage Added

Здесь:

-keyуказывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа)
-x509 
выдает самоподписанный сертификат

6 Конвертируем сертификат из формата PEM в формат CRT (DER) 

OpenSSL> x509 -in cert.pem -out cert.crt -outform DER

7 Сохраняем сертификат на аутентифицирующий носитель

Закрываем openssl (используя команду exit). Cохраняем сертификат CRT на Рутокен. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.

...

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

Image RemovedImage Added

Здесь:

-y <arg>тип объекта (может быть cert, privkey, pubkey, data)
-w <arg>
записать объект на токен

8 Проверяем, что на токене есть всё, что необходимо

Внимание! При выполнении команды запрашивается PIN-код пользователя.

...

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

...

Image Added

9 Включаем аутентификацию по внешнему носителю

Потребуются права суперпользователя:

$   su

Password:
#

...

# rm /etc/pam.d/system-auth
# ln -s /etc/pam.d/system-auth-pkcs11 /etc/pam.d/system-auth

на вопрос об удалении ссылки следует ответить "y"

...

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

Отредактируем первую строку файла конфигурации /etc/pam.d/system-auth. 

...

auth        [success=1 default=ignore]  pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so

...

11 Редактируем конфигурацию pam_pkcs11

Отредактируем файл /etc/security/pam_pkcs11/pam_pkcs11.conf

...

mapper_search_path = /lib/pam_pkcs11; на строку mapper_search_path = /lib64/pam_pkcs11;

...

12 Добавляем связку сертификата на токене с пользователем системы ALT Linux.

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

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

...

13 Проверяем выполненные настройки

Проверьте, что настройка была выполнена верно, используя команду login. Не завершайте свою сессию, пока не убедитесь в том, что все работает корректно.

Если команда login выполняется успешно, то вы можете завершать свою сессию и использовать аутентификацию по токенам и смарт-картам Rutoken.

Image RemovedImage Added

В случае возникновения ошибок еще раз проверьте все настройки. Для выявления проблемы вы так же можете включить вывод дополнительной информации при аутентификации.

...

Не забудьте отключить вывод дополнительной инфомации информации после настройки системы.

...

14 Настройка завершена!

На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так:

Image RemovedImage Added

...

15 Другие пользователи

При необходимости добавить вход по токену для других пользователей следует:

...

В обоих случаях в файле subject_mapping должно оказаться две (или несколько) записей.