Настройка системы
Перед началом работы, установите следующие пакеты:
|
Проверьте, что у вас установлен openssl версии 1.1 и выше
Скачайте pam модуль и положите его по адресу /usr/lib64
Для этого из папки с pam модулем выполните команду:
|
Установите права доступа:
|
Загрузите модуль librtpkcs11ecp.so и установите:
|
Проверяем, что все настроили правильно:
|
Далее потребуется скачать сертификат с токена, если его нету, то генерируем его согласно следующему пункту
Генерация сертификата и запись его на Рутокен
Генерируем ключевую пару с параметрами:
--key-type
: GOSTR3410-2012-512:А
(ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A
(ГОСТ-2012 256 бит с парамсетом A)
--id
: идентификатор объекта (CKA_ID) в виде двузначных номеров символов в hex из таблицы ASCII. Используйте только ASCII-коды печатных символов, т.к. id нужно будет передать OpenSSL в виде строки. Например ASCII-кодам “3132” соответствует строка "12".
|
Скачайте и разархивируйте комплект разработчика
|
В sdk находится необходимый нам rtengine. Поместите его в engines-1.1
|
Зайдите в файл конфигурации openssl.cnf
|
В начале файла исправьте следующее:
|
И в конце файла добавьте следующее:
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] engine_id = rtengine dynamic_path = /usr/lib64/engines-1.1/rtengine.so pkcs11_path = /usr/lib64/librtpkcs11ecp.so default_algorithms = CIPHERS, DIGEST, PKEY, RAND |
Отредактируйте файл /etc/crypto-policies/back-ends/openssl.config
|
Далее необходимо выполнить следующую команду
|
Создаём самоподписанный сертификат
Чтобы использовать этот id
ключевой пары, созданной через pkcs11-tool, в OpenSSL – надо использовать hex-символы из таблицы ASCII, соответствующие этим кодам.
Например: для ‘--id 3132
’ в OpenSSL надо указывать "pkcs11:id=12
".
Теперь создадим самоподписанный сертификат для наших ключей на токене. Для ключей ГОСТ 512 необходимо выполнить следующую команду
|
Загружаем его на токен
|
Регистрация сертификата в системе
Скачиваем сертификат с токена (если вы пользовались вышеописанной инструкцией для получения сертификата, то ID = 3132)
|
Конвертируем его в PEM формат
|
Добавляем сертификат в список доверенных сертификатов
|
Настройка аутентификации
Открываем файл /etc/pam.d/system-auth
|
И записываем в самом начале следующую строчку:
|
Аналогично делаем с /etc/pam.d/password-auth.
Пробуем пройти аутентификацию
|
Если все прошло успешно, то появится просьба ввести PIN токена.
В окне экрана приветствия аналогично:
Настройка автоблокировки
В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для того, чтобы аутентификация корректно работала на лок скрине. В настройках pkcs11_eventmgr нужно указать название сервиса, использующегося при аутентификации через лок скрин, чтобы сделать его доверенным. У каждой графической оболочки свое название данного сервиса. Узнать название вашей графической оболочки можно с помощью команды:
Название графической оболочки
|
Вот список соответствий названий графических оболочек и сервиса, используемого лок скрином. Данный список не является полным.
MATE → mate-screensaver
X-Cinnamon → cinnamon-screensaver
fly → <Отсутствует>
KDE → kde
GNOME → xdg-screensaver
Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf
Пример файла конфигурации представлен ниже:
|
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузите компьютер.
Для этого создайте папку ~/.config/autostart. И в данной директории создайте файл ~/.config/autostart/smartcard-screensaver.desktop
|
Содержание файла smartcard-screensaver.desktop должно быть следующим:
|