Введение
В данной инструкции описывается, как настроить модуль pam_pkcs11
для работы с библиотекой librtpkcs11ecp.so
.
Стенд
Нам понадобится токен или смарт-карта семейства Рутокен ЭЦП, отформатированные через Панель управления Рутокен.
Настройки для токена и смарт-карты идентичны.
Проверка модели токена
- Подключите USB-токен к компьютеру.
- Для определения названия модели USB-токена откройте Терминал и введите команду:
...
В результате в окне Терминала отобразится название модели USB-токена:
Убедитесь, что используете: Aktiv Rutoken ECP
Если вы используете смарт-карту Рутокен, то проверку проходить не требуется.
Общий порядок действий
1 Устанавливаем необходимые пакеты и их зависимости:
Для этого вы можете воспользоваться Терминалом:
|
...
- opensc,
- pam_pkcs11,
- pcsc-lite-ccid,
- openssl-engine_pkcs11.
2 Скачиваем и устанавливаем пакет для вашей системы
- Библиотека rtPKCS11ecp для GNU/Linux RPM 32-bit (x86)
- Библиотека rtPKCS11ecp для GNU/Linux RPM 64-bit (x86_64)
Если установка завершилась корректно, то в папке /usr/lib (или /usr/lib64) появится библиотека librtpkcs11ecp.so.
3 Проверяем работу токена или смарт-карты
Подключаем токен или смарт-карту к компьютеру. Запускаем dmesg Запускаем dmesg и убедимся в том, что устройство опредилось определилось корректно.
Для 32-битной версии используйте команду:
|
Для 64-битной версии используйте команду:
|
4 Создаем ключевую пару
Если у вас уже имеется выписанная на токен ключевая пара RSA с привязанным к ней сертификатом, то вы можете использовать их для аутентификации.
...
Для 32-битной версии используйте команду:
|
Для 64-битной версии используйте команду:
|
Утилита pkcs11-tool
входит в состав opensc
.
...
--module <arg> | путь к библиотеке pkcs11 (обязательный параметр) |
| генерация ключевой пары |
-- key-type <arg> | задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы) |
-l | запрос PIN-кода токена до каких-либо операций с ним (обязательный параметр) |
--id <arg> | определяет id создаваемого объекта (понадобится при создании сертификата) |
5 Создаем сертификат в формате PEM
Запускаем openssl
и подгружаем модуль поддержки pkcs11:
...
|
Создаем сертификат в PEM-формате. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.
|
Здесь:
-key | указывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа) |
| выдает самоподписанный сертификат |
6 Конвертируем сертификат из формата PEM в формат CRT (DER)
|
7 Сохраняем сертификат на аутентифицирующий носитель
Закрываем openssl (используя команду exit).
Cохраняем сертификат CRT на Рутокен. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.
...
|
Здесь:
-y <arg> | тип объекта (может быть cert, privkey, pubkey, data) |
| записать объект на токен |
8 Проверяем, что на токене есть всё, что необходимо
Внимание! При выполнении команды запрашивается PIN-код пользователя.
...
|
...
9 Включаем аутентификацию по внешнему носителю
Потребуются права суперпользователя:
|
...
|
на вопрос об удалении ссылки следует ответить "y"
...
10 Редактируем конфигурацию аутентификации в системе
Отредактируем первую строку файла конфигурации /etc/pam.d/system-auth.
...
|
...
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.
Добавляем сертификат в список доверенных сертификатов
|
...
13 Проверяем выполненные настройки
Проверьте, что настройка была выполнена верно, используя команду login. Не завершайте свою сессию, пока не убедитесь в том, что все работает корректно.
Если команда login выполняется успешно, то вы можете завершать свою сессию и использовать аутентификацию по токенам и смарт-картам Rutoken.
В случае возникновения ошибок еще раз проверьте все настройки. Для выявления проблемы вы так же можете включить вывод дополнительной информации при аутентификации.
...
Не забудьте отключить вывод дополнительной инфомации информации после настройки системы.
...
14 Настройка завершена!
На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так:
...
15 Другие пользователи
При необходимости добавить вход по токену для других пользователей следует:
...
В обоих случаях в файле subject_mapping должно оказаться две (или несколько) записей.