Table of Contents |
---|
Введение
В данной инструкции описывается, как настроить модуль pam_pkcs11
для работы с библиотекой librtpkcs11ecp.so
.
Стенд
Нам понадобится токен или смарт-карта семейства Рутокен ЭЦП, отформатированные через Панель управления Рутокен Утилита администрирования Рутокен (rtadmin).
Настройки для токена и смарт-карты идентичны.
Проверка модели токена
- Подключите USB-токен к компьютеру.
- Для определения названия модели USB-токена откройте Терминал и введите команду:
...
В результате в окне Терминала отобразится название модели USB-токена:
Убедитесь, что используете: Aktiv Rutoken ECP
Если вы используете смарт-карту Рутокен, то проверку проходить не требуется.
Общий порядок действий
...
Установка необходимых пакетов и их
...
зависимостей
Для этого вы можете воспользоваться Терминалом:
sudo
|
|
|
Или из меню запустить Приложения - Системные - Программа управления пакетами Synaptic и используя быстрый поиск выбрать для установки пакеты:
- opensc,
- pam_pkcs11,
- pcsc-lite-ccid,
- openssl-engine_pkcs11.
...
Установка библиотеки PKCS#11 для вашей системы
- Библиотека rtPKCS11ecp для GNU/Linux RPM 32-bit (x86)
- Библиотека rtPKCS11ecp для GNU/Linux RPM 64-bit (x86_64)
Если установка завершилась корректно, то в папке /usr/lib (или /usr/lib64) появится библиотека librtpkcs11ecp.so.
...
Проверка работы токена или смарт-карты
Подключаем токен или смарт-карту к компьютеру. Запускаем dmesg Запускаем dmesg и убедимся в том, что устройство опредилось определилось корректно.
Для 32-битной версии используйте команду:
|
|
Для 64-битной версии используйте команду:
|
|
...
Создание ключевой пары
Если у вас уже имеется выписанная на токен ключевая пара RSA с привязанным к ней сертификатом, то вы можете использовать их для аутентификации.
...
Для 32-битной версии используйте команду:
|
|
|
|
Для 64-битной версии используйте команду:
|
|
|
|
Утилита pkcs11-tool
входит в состав opensc
.
Параметры, задаваемые в этой строке:
--module <arg> | путь к библиотеке pkcs11 (обязательный параметр) |
| генерация ключевой пары |
-- key-type <arg> | задает тип и длину ключа. В нашем случае тип – rsa, длина - 2048 бит (с длиной ключа 1024 бит возникают проблемы) |
-l | запрос PIN-кода токена до каких-либо операций с ним (обязательный параметр) |
--id <arg> | определяет id создаваемого объекта (понадобится при создании сертификата) |
...
Создание сертификата в формате PEM
Запускаем openssl
и подгружаем модуль поддержки pkcs11:
Для 32-битной версии используйте команду:
|
|
|
|
|
Для 64-битной версии используйте команду:
|
|
|
|
Создаем сертификат в PEM-формате. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.
|
Здесь:
-key | указывает закрытый ключ (в нашем случае 0:45 – слот:ID ключа) |
| выдает самоподписанный сертификат |
...
Конвертация сертификата из формата PEM в формат CRT (DER)
|
...
Сохранение сертификата на аутентифицирующий носитель
Закрываем openssl (используя команду exit).
Cохраняем сертификат CRT на Рутокен. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.
Для 32-битной версии используйте команду:
|
Для 64-битной версии используйте команду:
|
Здесь:
-y <arg> | тип объекта (может быть cert, privkey, pubkey, data) |
| записать объект на токен |
...
Проверка, что на токене есть всё, что необходимо
Внимание! При выполнении команды запрашивается PIN-код пользователя.
Для 32-битной версии используйте команду:
|
Для 64-битной версии используйте команду:
|
9 Создаем файлы конфигурации pam_pkcs11
Включение аутентификации по внешнему носителюВоспольуемся примерами, которые предоставляют разработчики pam_pkcs11.
Потребуются права суперпользователя:
|
|
#
...
# cp /usr/share/pam_pkcs11/pam_pkcs11.conf.example /etc/security/pam_pkcs11/pam_pkcs11.conf
|
...
|
...
|
# cp /usr/share/doc/pam_pkcs11/subject_mapping.example /etc/security/pam_pkcs11/subject_mapping
на вопрос о переписывании файла следует ответить "y"
10 Включаем аутентификацию по внешнему носителю
|
на вопрос об удалении ссылки следует ответить "y"
...
Редактирование конфигурации аутентификации в системе
Отредактируем вторую строчкупервую строку файла конфигурации /etc/pam.d/system-auth.
...
Для редактирования можно воспользоваться редактором mceditpluma
|
|
Для 32-битной версии используйте строку:
|
Для 64-битной версии используйте строку:
|
...
Редактирование конфигурации pam_pkcs11
Отредактируем файл /etc/security/pam_pkcs11/pam_pkcs11.conf
...
Для редактирования можно воспользоваться редактором mceditpluma
|
|
Для 32-битной версии используйте:
|
true
true; |
caca_dir = /etc/security/pam_pkcs11/cacerts; |
crlcrl_dir = /etc/security/pam_pkcs11/crls; |
certcert_policy = signature; |
useuse_mappers = |
opensc; |
mappermapper_search_path = /lib/pam_pkcs11; |
mapper subject {
debug =
# Search certificates from $HOME/.eid/authorized_certificates to match users |
module |
ignorecase =
false
;
mapfile =
file
:
///etc/security/= /lib64/pam_pkcs11/ |
opensc_ |
mapper.so; |
} |
Для 64-битной версии замените строку
module = /usr/lib/librtpkcs11ecp.so на строку module = /usr/lib64/librtpkcs11ecp.so
и строку
mapper_search_path = /lib/pam_pkcs11; на строку mapper_search_path = /lib64/pam_pkcs11;
...
Добавление связки сертификата на токене с пользователем системы ALT Linux.
Для этого выполняем команду pkcs11_inspect
|
Используя текстовый редактор закомментируем или удаляем ненужные строчки
Для этого можно использовать редактор mcedit
|
|
Внимание! Вместо alt нужно установить имя пользователя в вашей системе
Если вы не знаете имя пользователя запустите команду whoami (без прав суперпользователя)
|
...
Добавляем сертификат в список доверенных сертификатов
|
Проверка настроек
Проверьте, что настройка была выполнена верно, используя команду login. Не завершайте свою сессию, пока не убедитесь в том, что все работает корректно.
Если команда login выполняется успешно, то вы можете завершать свою сессию и использовать аутентификацию по токенам и смарт-картам Rutoken.
В случае возникновения ошибок еще раз проверьте все настройки. Для выявления проблемы вы так же можете включить вывод дополнительной информации при аутетификацииаутентификации.
Для этого:
- В файле pam_pkcs11.conf исправьте все строки вида "debug = false;", на строки "debug = true;".
- В конец второй строки файла конфигурации /etc/pam.d/system-auth добавьте слово "debug".
Не забудьте отключить вывод дополнительной инфомации информации после настройки системы.
...
На этом настройка закончена. После перезапуска ОС окно входа в систему будет выглядеть так:
...
Другие пользователи
При необходимости добавить вход по токену для других пользователей следует:
...
В обоих случаях в файле subject_mapping должно оказаться две (или несколько) записей.