Подробный гайд: Автоблокировка экрана по PIN-коду Рутокен в РЕД ОС (MATE) через pkcs11 - Часть 2
6. Сопоставление сертификата Рутокен с пользователем
Чтобы система понимала, что сертификат на Рутокене принадлежит именно вашему пользователю, используется файл сопоставления.
Обычно это:
/etc/pam_pkcs11/card_mapping.conf
Создайте или откройте файл:
sudo nano /etc/pam_pkcs11/card_mapping.conf
Пример:
# /etc/pam_pkcs11/card_mapping.conf
# Формат:
# subject = "subject сертификата"; user = "логин_пользователя";
subject = "/C=RU/O=Example/CN=Ivanov Ivan Ivanovich"; user = iivanov;
Замените:
subject = "..."на реальный subject вашего сертификата;user = ...на ваш реальный логин в РЕД ОС.
Проверить свой логин можно командой:
id -un
Если пользователей несколько, можно добавить несколько строк:
subject = "/C=RU/O=Example/CN=Ivanov Ivan Ivanovich"; user = iivanov;
subject = "/C=RU/O=Example/CN=Petrov Petr Petrovich"; user = ppetrov;
Права:
sudo chown root:root /etc/pam_pkcs11/card_mapping.conf
sudo chmod 644 /etc/pam_pkcs11/card_mapping.conf
Если у вас уже работает вход в систему по Рутокену, этот файл, скорее всего, уже настроен.
7. Самая вероятная причина вашей проблемы: не настроен PAM для mate-screensaver
Проверьте, есть ли файл:
ls -l /etc/pam.d/mate-screensaver
Если файла нет, посмотрите, есть ли альтернативные:
ls -l /etc/pam.d/screensaver /etc/pam.d/xscreensaver /etc/pam.d/light-locker
Посмотрите содержимое:
cat /etc/pam.d/mate-screensaver
Часто исходный файл выглядит примерно так:
#%PAM-1.0
auth include password-auth
account include password-auth
password include password-auth
session include password-auth
Или так:
#%PAM-1.0
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
Ваша задача — добавить pam_pkcs11.so до include ....
Откройте файл:
sudo nano /etc/pam.d/mate-screensaver
Рабочий вариант с сохранением возможности входа по паролю:
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth include password-auth
account include password-auth
password include password-auth
session include password-auth
Если в вашей системе в исходном файле используется не password-auth, а system-auth, используйте его:
#%PAM-1.0
auth sufficient pam_pkcs11.so
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
Если PAM не находит модуль по короткому имени, укажите полный путь:
auth sufficient /usr/lib64/security/pam_pkcs11.so
Полный вариант:
#%PAM-1.0
auth sufficient /usr/lib64/security/pam_pkcs11.so
auth include password-auth
account include password-auth
password include password-auth
session include password-auth
Что делает эта конфигурация
Строка:
auth sufficient pam_pkcs11.so
Означает:
- если Рутокен вставлен и PIN введён правильно — доступ разрешается;
- если модуль не смог аутентифицировать по токену, PAM переходит к следующей строке;
- дальше остаётся обычная аутентификация по паролю через
password-auth.
То есть вы получаете схему:
- токен есть + правильный PIN → разблокировка по PIN;
- токена нет или PIN не принят → можно разблокировать паролем.
8. Временная отладка PAM
Для диагностики можно временно добавить параметр debug:
auth sufficient pam_pkcs11.so debug
Пример:
#%PAM-1.0
auth sufficient pam_pkcs11.so debug
auth include password-auth
account include password-auth
password include password-auth
session include password-auth
Затем заблокируйте экран:
mate-screensaver-command --lock
Попробуйте разблокировать по Рутокену.
После этого в другом терминале или в текстовой консоли посмотрите:
sudo tail -n 100 /var/log/secure
или:
sudo tail -f /var/log/secure
Ищите строки со словами:
pam_pkcs11
mate-screensaver
auth
После проверки можно убрать debug, чтобы не писать лишние сведения в лог.
9. Если используется authselect
В РЕД ОС и других RHEL-подобных системах PAM-файлы могут управляться через authselect.
Проверьте:
authselect list
Если система использует authselect, не редактируйте вручную файлы вроде:
/etc/pam.d/password-auth
/etc/pam.d/system-auth
Иначе изменения могут быть перезаписаны.
Но отдельный файл:
/etc/pam.d/mate-screensaver
обычно можно редактировать вручную.
Если в вашем authselect есть функция поддержки pam_pkcs11, можно попробовать:
sudo authselect enable-feature with-pam-pkcs11
sudo authselect apply-changes
Если команда сообщает, что такой функции нет, ничего страшного — используйте ручную настройку сервисного файла mate-screensaver.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.