Категория: Доступ и аутентификацияОбновлено 2026-10-18

PAM (подключаемые модули аутентификации)

PAM (Pluggable Authentication Modules, подключаемые модули аутентификации) это набор библиотек, к которым обращаются службы Linux, такие как login, su и sshd, чтобы проверить пользователя и права доступа. Linux-PAM читает файл каждой службы в /etc/pam.d, где модули выстроены в четыре группы: auth, account, password и session. Политику входа можно менять без перекомпиляции программ.

Что такое PAM и как он работает

PAM (Pluggable Authentication Modules) это набор библиотек, которые выполняют аутентификацию для системных служб. В руководстве pam(8) сказано, что он даёт программам, выдающим привилегии, например login и su, единый интерфейс для типовых задач аутентификации, а сам способ аутентификации настраивается динамически. Программа запрашивает у PAM решение, и PAM выполняет модули, перечисленные администратором для этой службы.

Модули делятся на четыре группы управления:

Настройки лежат в файлах служб в /etc/pam.d, где имя файла в нижнем регистре совпадает с именем службы (sshd, su, login). Если этот каталог существует, /etc/pam.conf игнорируется, а файлы в нём перекрывают одноимённые файлы поставщика из /usr/lib/pam.d.

Как читать правило PAM и безопасно проверять изменения

Каждая строка файла службы состоит из четырёх полей: тип, управление, путь к модулю и аргументы модуля. Модули одного типа выполняются в указанном порядке, а поле управления определяет смысл результата, согласно руководству pam.d(5):

В руководстве pam_wheel приведён пример: root пропускается, чтобы стать root, нужно членство в wheel, затем проверяется пароль:

auth sufficient pam_rootok.so
auth required   pam_wheel.so
auth required   pam_unix.so

Чтобы проверить безопасно, держите открытой сессию root, меняйте один файл и пробуйте новый вход из второго терминала, не закрывая прежние. Префикс - у типа лишь убирает запись в журнал, если модуль отсутствует.

Как sshd использует PAM и откуда берутся блокировки

В руководстве sshd_config сказано, что UsePAM yes включает PAM для парольной и keyboard-interactive аутентификации, а также применяет обработку модулей account и session ко всем способам аутентификации. Поэтому сбойный модуль account может не пустить пользователя даже с верным ключом SSH. Значение по умолчанию в руководстве no, хотя многие дистрибутивы поставляют yes, и там же советуют отключить PasswordAuthentication или KbdInteractiveAuthentication, так как они обычно играют одну роль.

Типичные ловушки:

Место PAM в защите сервера

PAM применяет политику входа после собственных проверок sshd, поэтому это и слой защиты, и риск блокировки одновременно. Используйте его для конкретных задач: pam_wheel ограничивает, кто может выполнять su, pam_faillock замедляет подбор, а модуль одноразовых кодов добавляет второй фактор. В руководстве pam_faillock есть эти настройки и команды для просмотра и сброса блокировки:

# /etc/security/faillock.conf
deny=4
unlock_time=1200
silent

faillock --user alice
faillock --user alice --reset

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

Связанные термины: sshd_config, Двухфакторная аутентификация, sudo, TOTP, Fail2ban.

Часто задаваемые вопросы

Что означает PAM в Linux?

PAM расшифровывается как Pluggable Authentication Modules, подключаемые модули аутентификации. Через эту систему службы login, su и sshd проверяют пользователей и применяют правила для учётных записей и сессий, используя модули, выбранные в файлах настройки.

Где находятся файлы настройки PAM?

В каталоге /etc/pam.d, по одному файлу на службу с именем в нижнем регистре, например /etc/pam.d/sshd. Если этот каталог существует, /etc/pam.conf игнорируется, а файлы поставщика могут лежать в /usr/lib/pam.d.

Чем отличаются required, requisite и sufficient?

При required об ошибке сообщается только после выполнения остальных модулей. При requisite ошибка возвращается сразу. При sufficient успех возвращается сразу, если ранее не было ошибки у required-модуля, а ошибка игнорируется.

Использует ли sshd PAM?

Да, если UsePAM равен yes. Тогда PAM обрабатывает парольную и keyboard-interactive аутентификацию и применяет проверки account и session ко всем способам входа, включая вход по публичному ключу.

Как не заблокировать себя при правке PAM?

Держите открытой сессию root, меняйте один файл за раз и проверяйте новым входом из другого терминала, не закрывая прежние. Некорректная строка, как правило, ломает аутентификацию, поэтому подготовьте консоль провайдера или режим восстановления.

Хотите увидеть, в каком состоянии ваш сервер?

Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.

Получить бесплатную проверку сервераОткрыть Security Lab