Отладка и проверка работы PAM

Корректная работа PAM имеет критическое значение для обеспечения доступа к Системе. Ошибки в конфигурации PAM-файлов могут привести к блокировке входа для всех пользователей, включая администратора. Поэтому любые изменения в конфигурации должны сопровождаться обязательной проверкой и, по возможности, тестироваться в отдельной сессии.

Просмотр системного журнала

Большинство PAM-модулей, включая pam_unix, pam_faillock, pam_lastlog, pam_p11, записывают диагностические сообщения в системный журнал. Для просмотра сообщений, связанных с PAM, рекомендуется использовать команду:

sudo journalctl -b | grep pam

Для анализа конкретного модуля, например pam_p11, используется команда:

sudo journalctl -b | grep pam_p11

Параметр -b ограничивает вывод сообщениями текущей загрузки Системы.

Проверка конфигурации и тестирование изменений

Перед внесением изменений в основные PAM-файлы (например, /etc/pam.d/system-auth, /etc/pam.d/password-auth, /etc/pam.d/sshd) рекомендуется, предварительно обязательно создав резервную копию изменяемого файла:

sudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
  1. создать отдельную тестовую сессию (например, новую вкладку в терминале TTY или подключение по SSH от другого пользователя), не завершая активную административную сессию;
  2. выполнить проверку работы входа или сервиса с новой конфигурацией.

Если вход становится невозможен, следует восстановить резервную копию из открытой сессии:

sudo cp /etc/pam.d/system-auth.bak /etc/pam.d/system-auth

Использование временного доступа через root-tty

Для минимизации рисков полной потери доступа к Системе рекомендуется:

  • оставлять root-доступ через терминал TTY активным (файл /etc/pam.d/login);
  • не изменять правила PAM для sudo, su и login одновременно;
  • иметь доступ к Системе через физическую консоль или загрузку в однопользовательском режиме (recovery mode), если доступ по SSH будет заблокирован.

Примеры отладочной информации от модулей

Для повышения информативности можно включить режим отладки в отдельных модулях:

  • В модуле pam_unix:
auth required pam_unix.so debug
  • В модуле pam_faillock:
auth required pam_faillock.so preauth silent deny=5\ unlock_time=900 debug

Сообщения с пометкой pam_unix(debug) или pam_faillock(debug) будут отображаться в journalctl.

Проверка порядка выполнения модулей

Для анализа последовательности выполнения PAM-модулей можно использовать повышенное логирование, активируемое на уровне службы (например, sshd). Для этого в файле /etc/ssh/sshd_config необходимо добавить или изменить параметр:

LogLevel DEBUG

после чего перезапустить службу:

sudo systemctl restart sshd

В journalctl будут отображаться дополнительные сведения о ходе аутентификации.