Что такое PAM

Обновлено и опубликовано Опубликовано:

PAM —
простыми словами

набор подключаемых модулей, которые отвечают за аутентификацию в системе. По сути, это API, который операционная система или приложения могут использовать, чтобы отправить запросы на проверку подлинности пользователя. PAM расшифровывается как Pluggable Authentication Modules; перевод на русский — подключаемые модули аутентификации.

PAM разработана компанией Sun Microsystems и была представлена в 1995 году. Раньше в UNIX за авторизацию пользователя в систему отвечала программа login, которая принимала логин и пароль и сравнивала данные с данными в файле /etc/passwd. Теперь же, login не занимается аутентификацией, а просто передает задачу PAM, который с помощью набора своих или дополнительно подключенных алгоритмов проверяет подлинность пользователя и возвращает ответ.

Данный модуль можно встретить во многих операционных системах на основе UNIX, например, Ubuntu, CentOS, Debian, Red Hat, FreeBSD, Gentoo, Mac OS X, Solaris и многих других.

Настройка PAM выполняется в главном конфигурационном файле /etc/pam.conf и подключаемых из каталога /etc/pam.d, название каждого файла в котором точно соответствует названию программы, которая использует модуль pam для аутентификации. В некоторых системах, например, Linux CentOS, файла pam.conf может и не быть — настройка выполняется с помощью файлов в pam.d.

Пример стандартного файла для аутентификации в SSH:

cat /etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

* синтаксис конфигурации — <Тип модуля> <Флаг контроля> <Путь к модулю> <Параметры модуля>

  • <Тип модуля> — варианты: auth (проверка наличия пользователя в системе), account (контроль распределения ресурсов системы), session (события, которые происходят до того, как произойдет авторизация), password (проверка подлинности).
  • <Флаг контроля> — варианты: required (требуется для успешной авторизации и если закончится ошибкой, то в целом pam вернет отказ), requisite (то же самое, что и required с резкой остановкой последующих правил), sufficient (достаточный для проверки подлинности, то есть если завершится успешно, pam вернет успех), optional (дополнительный модуль — результат его работы не влияет на ответ pam; может использоваться для вывода дополнительной информации), include (подключение строк из другого файла), substack (подключение строк из другого файла, но только того же типа, что наша строка).
  • <Путь к модулю> — путь может быть полным (от корня /) или относительно каталога /usr/lib/security и/или /usr/lib64/security.
  • <Параметры модуля> — для указания дополнительных параметров. Например, некоторым модулям можно передать файлы конфигурации.

Еще немного о PAM на Википедии

Дмитрий Моск
— IT-специалист.
Настройка серверов, компьютерная помощь.

Другие термины

Файл подкачки   Оперативная память   UNIX   Winsock   Аккаунт   DKIM   UAC   NAT   WPA   3proxy   SOCKS   Жесткая ссылка   NTP   Плагин   Умный дом   Docker   ClamAV   Сервер   RAID   Remote Desktop Gateway  
.....

Реклама