Локальная аутентификация при помощи Рутокен ЭЦП в операционной системе ROSA Enterprise Linux Server
Содержание
Начальные требования
Установленная система ROSA Enterprise Linux Server 6.8 в конфигурации «Стандартный сервер РОСА», доступ к репозиториям (для этого нужно использовать ключ, заранее полученный у службы поддержки, выполнив команду echo «<ключ>» > /etc/rosa-support-id-server с правами администратора). Необходимо устройство (любое из приведённых) Рутокен ЭЦП/Рутокен ЭЦП Flash или Рутокен ЭЦП SC вместе с ридером. На устройстве должен присутствовать контейнер с сертификатом в формате PKCS#12.
Применимость
В инструкции описаны установка и конфигурирование утилит для аутентификации с использование Рутокен ЭЦП для ROSA Enterprise Linux Server 6.8. Пример указан для Архитектуры AMD64, для 32-разрядной системы настройка и установка аналогичны с точностью до названий папок. В инструкции описана процедура, после выполнения которой аутентификация по Рутокен ЭЦП будет возможна, но не будет являться обязательной.
Установка требуемых компонентов
Установка требуемых и удаление конфликтующих утилит (требуются права администратора):
su yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard yum remove coolkey
Библиотека PKCS#11 для Рутокен ЭЦП (важно установить утилиты перед установкой библиотеки):
- Заходим на сайт Рутокен: https://www.rutoken.ru/support/download/pkcs/
- Открываем вкладку "Пользователям GNU/Linux" и нажимаем на ссылку "Библиотека rtPKCS11ecp для GNU/Linux RPM 64-bit (x64) "
- Скачиваем и устанавливаем пакет (требуется пароль администратора)
Настройка системы
Проверка отображения устройства в системе и наличия на нём нужной информации
Запуск pcscd (требуются права администратора):
su killall pcscd (отключение существующего процесса pcscd, если такой был)
С этого момента токен должен быть вставлен в соответствующий разъём
pcscd -adfffff
Открываем отдельную вкладку или окно терминала и набираем в ней следующую команду:
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T
В выводе должны быть видны параметры и название устройства. Пример вывода приведён ниже.
Проверим наличие на токене нужной информации при помощи следующей команды (требуется пароль от токена):
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l
В выводе обязан присутствовать "Certificate Object". Такие параметры как ID и label могут отличаться от приведённых ниже.
Добавление сертификата в доверенные
Создание базы данных доверенных сертификатов (требуются права администратора):
su mkdir /etc/pam_pkcs11/nssdb chmod 0644 /etc/pam_pkcs11/nssdb certutil -d /etc/pam_pkcs11/nssdb -N (создание базы данных) modutil -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so (утилита потребует отключить браузер)
Копирование сертификата с токена (требуется пароль токена) (параметр ID можно взять из вывода команды pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l):
pkcs11-tool --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d <ID> -o cert.crt (команда запишет сертификат в текущую директорию как cert.crt)
Добавление сертификата в доверенные (требуются права администратора):
su cp cert.crt /etc/pki/ca-trust/source/anchors/ (команда вводится из директории, в которую был помещён сертификат) update-ca-trust force-enable update-ca-trust extract (может занять некоторое время)