Архитектура и основные концепции PAM

Архитектура и основные концепции PAM

Компоненты PAM

Для успешного управления аутентификацией с использованием PAM важно понимать его основные компоненты. Каждый из них играет ключевую роль в работе системы.

Архитектура и основные концепции PAM

1. Модуль

Модули PAM — это отдельные программные компоненты, которые реализуют конкретные задачи аутентификации или управления доступом. Они предоставляют различные методы проверки учетных данных или выполнения сопутствующих действий.

Модули, как правило, хранятся в директории /lib/security/ или /usr/lib/security/.

Примеры модулей:

  • pam_unix.so: выполняет проверку пароля, хранящегося в системных файлах /etc/passwd и /etc/shadow.
  • pam_faillock.so: блокирует учетные записи после нескольких неудачных попыток входа.
  • pam_ldap.so: позволяет использовать сервер LDAP для аутентификации.
  • pam_google_authenticator.so: обеспечивает поддержку двухфакторной аутентификации (2FA).

Примеры настройки модулей

1. pam_unix.so: проверка пароля пользователя через локальные файлы.

Пример настройки в файле /etc/pam.d/common-auth:


# Проверка пароля пользователя
auth required pam_unix.so nullok
    

Ключ nullok разрешает вход пользователям без пароля, если это необходимо.

2. pam_faillock.so: защита от перебора паролей.

Пример настройки в файле /etc/pam.d/common-auth:


# Блокировка после 3 неудачных попыток
auth required pam_faillock.so preauth silent deny=3 unlock_time=600
auth [default=die] pam_faillock.so authfail deny=3 unlock_time=600
    

Параметры:

  • deny=3: блокировка после трех неудачных попыток.
  • unlock_time=600: автоматическая разблокировка через 10 минут.
  • silent: отключает вывод сообщений для пользователя.

3. pam_google_authenticator.so: двухфакторная аутентификация (2FA).

Пример настройки в файле /etc/pam.d/sshd:


# Включение двухфакторной аутентификации
auth required pam_google_authenticator.so
    

Для использования этого модуля каждый пользователь должен настроить Google Authenticator с помощью команды google-authenticator.

4. pam_ldap.so: аутентификация через LDAP.

Пример настройки в файле /etc/pam.d/common-auth:


# Аутентификация через LDAP
auth sufficient pam_ldap.so
auth required pam_deny.so
    

Параметры определяются в файле /etc/ldap.conf, где указываются сервер LDAP, базовые DN и другие параметры соединения.

2. Сервис

Сервис в контексте PAM — это приложение или служба, которая обращается к системе PAM для выполнения аутентификации. Примеры сервисов включают:

  • sshd: процесс аутентификации для подключения по SSH.
  • login: аутентификация при входе в систему через консоль.
  • sudo: проверка личности пользователя при выполнении команд с повышенными привилегиями.
  • passwd: изменение пароля пользователя.

Каждый сервис имеет свой конфигурационный файл в директории /etc/pam.d/. Например, файл /etc/pam.d/sshd содержит настройки аутентификации для сервиса SSH.

Пример: Для обеспечения двухфакторной аутентификации можно добавить модуль pam_google_authenticator.so в файл /etc/pam.d/sshd:

auth required pam_google_authenticator.so

3. Профиль

Профиль в PAM представляет собой набор правил и модулей, которые определяют, как именно обрабатывается аутентификация для конкретного сервиса. Каждый профиль соответствует файлу конфигурации в /etc/pam.d/ или общему файлу /etc/pam.conf.

Профиль состоит из последовательных записей, каждая из которых включает:

  • Тип модуля: определяет этап аутентификации (например, auth, account, password, session).
  • Контрольный флаг: определяет, как обрабатываются результаты выполнения модуля (например, required, sufficient, optional).
  • Модуль: путь к библиотеке модуля (например, pam_unix.so).
  • Аргументы: дополнительные параметры, передаваемые модулю.

Пример: Профиль для сервиса SSH может выглядеть следующим образом (файл /etc/pam.d/sshd):


# Аутентификация пользователя
auth required pam_unix.so
auth required pam_google_authenticator.so

# Проверка учетной записи
account required pam_nologin.so
account required pam_unix.so

# Настройка окружения
session required pam_limits.so
session optional pam_motd.so
  

Этот профиль выполняет проверку пароля пользователя, включает двухфакторную аутентификацию через Google Authenticator, проверяет, не отключен ли вход для учетной записи, и настраивает лимиты ресурсов.

Может быть интересно

Свяжитесь с автором проекта

Мы используем cookie-файлы, чтобы обеспечить вам лучшую навигацию по нашему веб-сайту. Для получения более подробной информации нажмите на ссылку «Политика конфиденциальности персональных данных». Если вы продолжите навигацию по этому веб-сайту, вы дадите разрешение на использование cookie-файлов.

Напишите нам, если нашли ошибку в тесте

Мы обязательно  ответим Вам и дадим подробные комментарии!