Отладка и проверка работы 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
- создать отдельную тестовую сессию (например, новую вкладку в терминале TTY или подключение по SSH от другого пользователя), не завершая активную административную сессию;
- выполнить проверку работы входа или сервиса с новой конфигурацией.
Если вход становится невозможен, следует восстановить резервную копию из открытой сессии:
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 будут отображаться дополнительные сведения о ходе аутентификации.