Работа с конфигурацией PAM

Работа с конфигурацией PAM

Работа с конфигурацией PAM

Одной из ключевых особенностей PAM (Pluggable Authentication Modules) является гибкость конфигурации. Конфигурационные файлы позволяют настроить порядок обработки модулей, контрольные флаги и аргументы, которые определяют поведение системы. Эта статья подробно рассматривает работу с конфигурацией PAM, от структуры файлов до практических примеров настройки.

Структура конфигурационных файлов PAM

В системе PAM конфигурация хранится в двух местах:

  • /etc/pam.conf: основной файл конфигурации (обычно не используется в современных системах).
  • /etc/pam.d/: каталог с отдельными конфигурационными файлами для каждого сервиса.

Пример файла из /etc/pam.d/

Каждый файл в каталоге /etc/pam.d/ соответствует определенному сервису (например, sshd, login, sudo). Вот пример содержимого файла /etc/pam.d/sshd:


# PAM конфигурация для SSH
auth required pam_unix.so
auth required pam_google_authenticator.so
account required pam_nologin.so
session required pam_limits.so
session optional pam_motd.so motd=/etc/motd
    

Каждая строка в файле состоит из следующих частей:

  • Тип модуля: этап обработки (auth, account, password, session).
  • Контрольный флаг: определяет поведение системы при успехе или ошибке модуля.
  • Имя модуля: библиотека, которая реализует функциональность.
  • Аргументы: дополнительные параметры для модуля.

Контрольные флаги: Логика выполнения модулей

Контрольные флаги определяют, как обрабатываются результаты выполнения модулей. Основные флаги:

  • required: ошибка модуля приведет к провалу этапа, но обработка других модулей продолжится.
  • requisite: ошибка модуля немедленно завершает этап.
  • sufficient: успешное выполнение модуля завершает этап, если предыдущие модули не провалились.
  • optional: модуль используется только для дополнительной информации.
  • include: включает правила из другого конфигурационного файла.

Пример с контрольными флагами

Настройка модуля pam_faillock.so в файле /etc/pam.d/sshd:


auth required pam_unix.so
auth required pam_faillock.so preauth silent deny=3 unlock_time=600
auth [success=1 default=ignore] pam_google_authenticator.so
    

В этой конфигурации:

  • Пароль проверяется через pam_unix.so. Ошибка приводит к завершению этапа.
  • pam_faillock.so блокирует учетные записи после трех неудачных попыток.
  • pam_google_authenticator.so используется как дополнительный шаг двухфакторной аутентификации.

Аргументы модулей

Аргументы модулей предоставляют дополнительную функциональность и тонкую настройку их работы. Вот некоторые примеры:

Пример с pam_unix.so

Файл /etc/pam.d/common-auth:


auth required pam_unix.so nullok try_first_pass
    
  • nullok: разрешает вход для учетных записей без пароля.
  • try_first_pass: использует введенный пароль для других модулей.

Пример с pam_pwquality.so

Файл /etc/pam.d/common-password:


password requisite pam_pwquality.so retry=3 minlen=12 difok=3
    
  • retry=3: дает три попытки для ввода сложного пароля.
  • minlen=12: устанавливает минимальную длину пароля.
  • difok=3: требует, чтобы новый пароль отличался от предыдущего минимум на три символа.

Общие файлы конфигурации

Помимо индивидуальных конфигураций для сервисов, есть общие файлы, такие как /etc/security/limits.conf и /etc/security/time.conf, которые взаимодействуют с модулями PAM.

Пример настройки pam_limits.so

Файл /etc/security/limits.conf:


# Установка лимитов для пользователей
@students    hard    nproc   100
@staff       soft    nproc   200
@staff       hard    nproc   300
*            soft    nofile  1024
*            hard    nofile  4096
    

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

Пример настройки pam_time.so

Файл /etc/security/time.conf:


# Ограничение доступа по времени
login ; tty1 ; !Wk0000-2400
    

Этот пример запрещает вход через консоль tty1 в выходные дни.

Практическое руководство: Настройка сервиса SSH

Пример полной конфигурации PAM для SSH в файле /etc/pam.d/sshd:


# Аутентификация
auth required pam_unix.so
auth required pam_google_authenticator.so
auth required pam_faillock.so preauth silent deny=3 unlock_time=600

# Управление учетной записью
account required pam_unix.so
account required pam_nologin.so

# Управление паролями
password requisite pam_pwquality.so retry=3 minlen=12 difok=3
password required pam_unix.so sha512

# Настройка сессии
session required pam_limits.so
session optional pam_motd.so motd=/etc/motd
    

Эта конфигурация обеспечивает аутентификацию с двухфакторной защитой, предотвращает подбор пароля, а также настраивает ограничения ресурсов и отображает сообщение дня.

Заключение

Работа с конфигурацией PAM предоставляет мощные инструменты для управления аутентификацией и доступом в системе. Используя контрольные флаги, аргументы модулей и общие файлы конфигурации, администратор может создать безопасную и удобную среду для пользователей.

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

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

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

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

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