Подробный гайд: Автоблокировка экрана по PIN-коду Рутокен в РЕД ОС (MATE) через pkcs11 - Часть 1

Подробный гайд по настройке автоблокировки экрана и аутентификации по PIN-коду Рутокен в РЕД ОС (MATE) через pkcs11_eventmgr и PAM.

2026.11.02                  


Подробный гайд: Автоблокировка экрана по PIN-коду Рутокен в РЕД ОС (MATE) через pkcs11 - Часть 1Подробный гайд: Автоблокировка экрана по PIN-коду Рутокен в РЕД ОС (MATE) через pkcs11 - Часть 1 pkcs11_eventmgr отвечает только за реакцию на извлечение Рутокена, например за автоматическую блокировку экрана.
То, что при разблокировке экрана запрашивается пароль или PIN, к pkcs11_eventmgr отношения уже не имеет.

Разблокировка экрана в MATE выполняется через PAM. Поэтому отдельно нужно настроить PAM-стек экранного блокировщика.

В MATE это обычно:

/etc/pam.d/mate-screensaver

Если вход в систему по PIN уже работает, а разблокировка заблокированного экрана всё равно требует пароль, чаще всего это означает, что:



  1. pkcs11_eventmgr нормально блокирует экран;
  2. но mate-screensaver при разблокировке не использует pam_pkcs11.so;
  3. либо используется другой блокировщик / другой PAM-сервис;
  4. либо нет корректного сопоставления сертификата на Рутокене с пользователем Linux.

Ниже подробный гайд для РЕД ОС + MATE + Рутокен ЭЦП 2.0 Flash.


1. Важное предупреление

Перед правкой PAM-файлов обязательно держите открытым терминал с правами root или имейте возможность перейти в консоль:

Ctrl + Alt + F2

Ошибки в PAM могут привести к тому, что вход в систему станет невозможен.

Сделайте резервные копии:

sudo mkdir -p /root/pam-backup

sudo cp -a /etc/pam.d/mate-screensaver /root/pam-backup/ 2>/dev/null || true
sudo cp -a /etc/pam_pkcs11/pam_pkcs11.conf /root/pam-backup/ 2>/dev/null || true
sudo cp -a /etc/pam_pkcs11/pkcs11_eventmgr.conf /root/pam-backup/ 2>/dev/null || true

2. Определить, какой именно блокировщик экрана используется

Вы указали, что графическая оболочка MATE и используется mate-screensaver. Это хорошо, но на всякий случай проверим.

Выполните в терминале:

pgrep -af 'mate-screensaver|xscreensaver|light-locker|gnome-screensaver'

Если видите процесс вроде:

/usr/bin/mate-screensaver

значит блокировщик действительно mate-screensaver.

Если вместо него, например:

/usr/bin/light-locker

или:

/usr/bin/xscreensaver

То настраивать нужно уже не mate-screensaver, а соответствующий блокировщик:

Блокировщик Команда блокировки PAM-файл
mate-screensaver mate-screensaver-command --lock /etc/pam.d/mate-screensaver
xscreensaver xscreensaver-command -lock /etc/pam.d/xscreensaver
light-locker light-locker-command -l /etc/pam.d/light-locker
gnome-screensaver gnome-screensaver-command --lock /etc/pam.d/gnome-screensaver

Дальше я буду исходить из того, что используется именно mate-screensaver.


3. Проверить, что базовые компоненты установлены

Для работы Рутокена и PAM-аутентификации обычно нужны:

sudo dnf install -y pam_pkcs11 pcsc-lite pcsc-lite-ccid opensc pcsc-tools

Если пакет pcsc-tools недоступен, не критично — он нужен только для диагностики.

Включить и запустить службу PC/SC:

sudo systemctl enable --now pcscd.service
sudo systemctl enable --now pcscd.socket 2>/dev/null || true

Проверить статус:

systemctl status pcscd

Проверить наличие PKCS#11-библиотеки Рутокен:

ls -l /usr/lib64/librtpkcs11ecp.so

Если файла нет, найдите его:

find /usr/lib /usr/lib64 -name 'librtpkcs11*'

Для Рутокен ЭЦП 2.0 Flash обычно используется именно:

/usr/lib64/librtpkcs11ecp.so

4. Проверить, что система видит Рутокен через PKCS#11

Проверить слоты:

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --list-slots

Вы должны увидеть слот с токеном, например что-то похожее на:

Slot 0 (0x0): Rutoken ...

Проверить объекты на токене:

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --login --list-objects --type cert

Может потребоваться ввести PIN. Если сертификат есть, но вы хотите увидеть его subject, можно извлечь сертификат во временный файл.

Сначала посмотрите ID сертификата в выводе предыдущей команды, затем:

pkcs11-tool \
  --module /usr/lib64/librtpkcs11ecp.so \
  --login \
  --read-object \
  --type cert \
  --id 01 \
  --output-file /tmp/rutoken.cer

Где --id 01 замените на реальный ID вашего сертификата.

Посмотреть subject:

openssl x509 -inform DER -in /tmp/rutoken.cer -noout -subject -dates


Если сертификат в PEM-формате, используйте:

openssl x509 -inform PEM -in /tmp/rutoken.cer -noout -subject -dates

Пример subject:

subject=C = RU, O = Example, CN = Ivanov Ivan Ivanovich

Этот subject может понадобиться для сопоставления сертификата с пользователем Linux.


5. Проверить конфигурацию pam_pkcs11

Если вход в систему по PIN уже работает, скорее всего основной файл:

/etc/pam_pkcs11/pam_pkcs11.conf

уже настроен. Но если вы хотите проверить конфигурацию или настраиваете с нуля, вот рабочий пример для Рутокен ЭЦП 2.0.

Откройте файл:

sudo nano /etc/pam_pkcs11/pam_pkcs11.conf

Пример содержимого:

# /etc/pam_pkcs11/pam_pkcs11.conf

# Отладка. Для диагностики можно временно включить.
debug = false;

# Используемый модуль
use_pkcs11_module = rutoken_ecp;

# Политика проверки сертификата.
# Для рабочей инфраструктуры лучше использовать корректные сертификаты и, при необходимости,
# проверку цепочки:
#   cert_policy = ca,signature;
# Для теста можно использовать более мягкие варианты, например:
cert_policy = signature;

# Мапперы для сопоставления сертификата пользователю Linux
use_mappers = file;

# Описание PKCS#11-модуля Рутокен
pkcs11_module rutoken_ecp {
    module = /usr/lib64/librtpkcs11ecp.so;
    description = "Rutoken ECP 2.0";
    slot_num = 0;

    # Варианты интерфейса ввода PIN:
    # GTK - отдельное графическое окно
    # INTERNAL - использовать диалог, предоставленный приложением, например экраном блокировки
    # Если отдельный ввод PIN не появляется, можно попробовать INTERNAL.
    ui_driver = INTERNAL;
}

# Маппер через файл сопоставления
mapper file {
    mapper = file;
    debug = false;
    file = /etc/pam_pkcs11/card_mapping.conf;
}

Важное замечание про ui_driver

Если при разблокировке экрана появляется отдельное окно с запросом PIN, можно оставить:

ui_driver = GTK;

Если окно не появляется или теряется на фоне блокировки, попробуйте:

ui_driver = INTERNAL;

Если ваша версия pam_pkcs11 не понимает INTERNAL, верните GTK.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта