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

- обеспечить возможность свободно выбирать механизм аутентификации по замалчиванию;
- обеспечить возможность применять для разных прикладных служб разные механизмы аутентификации;
- обеспечить возможность разрабатывать прикладные службы и механизмы аутентификации независимо.
Функционирование системы PAM базируется на возможности динамично подключать к программному обеспечению прикладных служб программные модули, которые реализуют те или иные механизмы аутентификации.

- библиотека обобщенных функций аутентификации (PAM library);
- набор специфических для того или иного механизма аутентификации модулей аутентификации.
Первый обеспечивает создание для прикладных служб обобщенного интерфейса доступа к модулям аутентификации, подгружая по необходимости нужные модули (в соответствии с содержанием конфигурационного файла). Вторые обеспечивают реализацию отдельных механизмов аутентификации.
Кроме модулей, которые реализуют функции только аутентификации, предполагается наличие модулей, предназначенных для выполнения других, связанных с аутентификацией, задач, таких как управление пользовательскими сеансами (session management), учетными записями (account management) и паролями (password management).
Таким образом, предусмотрено использование четырех видов аутентификационных модулей:
- модули аутентификации (разрешают выполнить аутентификацию субъекта доступа к ресурсам с использованием того или иного механизма аутентификации);
- модули управления учетными записями (разрешают проверить, возможен ли данному субъекту доступ в нужный момент согласно его учетной записи (не является ли его учетная запись заблокированной по той или иной причине, разрешается ли ему работать в данное время));
- модули управления сеансами (разрешают выполнять разные действия в начале и в конце пользовательских сеансов, например, зарегистрировать время их начала и/или продолжительность с использованием одного из механизмов регистрации);
- модули управления паролями (разрешают изменять пароли).