Встраиваемые модули идентификации
Архитектура встраиваемых модулей идентификации (PAM) предоставляет системным администраторам возможность встраивать в существующую систему несколько механизмов защиты с помощью встраиваемых модулей.
Приложения с поддержкой PAM могут встраиваться в существующие системы, не требуя изменения уже работающих приложений. Такая гибкость предоставляет администраторам следующие возможности:
- Выбирать для приложения системную службу идентификации
- Применять с данной службой несколько механизмов идентификации
- Добавлять новые модули службы идентификации без изменения существующих приложений
- Применять указанные ранее пароли для идентификации с помощью различных модулей
PAM состоит из библиотеки, встраиваемых модулей и файла конфигурации. Библиотека PAM реализует интерфейс прикладных программ (API) PAM и служит для управления транзакциями PAM и вызова служебных интерфейсов (SPI) PAM, определенных во встраиваемых модулях. Встраиваемые модули динамически загружаются библиотекой на основании вызывающих служб и соответствующих им записей файла конфигурации. Успешность идентификации определяется не только встраиваемым модулем, но и алгоритмом работы службы. Применение концепции стека позволяет настроить службу для применения нескольких методов идентификации. Модули также можно настроить на применение уже введенного пароля, без повторного запроса пароля у пользователя.
- login
- passwd
- su
- ftp
- telnet
- rlogin
- rexec
- rsh
- snappd
- imapd
- dtaction
- dtlogin
- dtsession
Ниже проиллюстрировано взаимодействие между приложениями, библиотекой PAM, файлом конфигурации и модулями PAM в системе, настроенной для использования PAM. Приложения с поддержкой PAM, вызывают API PAM из библиотеки PAM. На основании указанной в файле конфигурации записи приложения и вызовов SPI PAM в модуле библиотека определяет модуль для загрузки. Модуль PAM взаимодействует с приложением с помощью функции ведения диалога, реализованной в приложении. Затем, в зависимости от успеха или неудачи выполненной модулем проверки, а также в зависимости от алгоритма, определенного в файле конфигурации, определяется необходимость загрузки следующего модуля. Если такая необходимость есть, то обработка продолжается; в противном случае результат возвращается приложению.
