Этапы работы PAM: auth, account, password, session

Этапы работы PAM: auth, account, password, session

Введение в этапы работы PAM

Этапы работы PAM: auth, account, password, session

PAM (Pluggable Authentication Modules) управляет аутентификацией пользователей с помощью четырех основных этапов: auth, account, password, и session. Каждый из них выполняет определенную задачу, что позволяет более точно контролировать процесс аутентификации и настройки пользовательских сессий.

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

Этап auth: Проверка подлинности пользователя

Этап auth отвечает за проверку учетных данных пользователя, таких как пароли, токены или двухфакторная аутентификация. Он также может выполнять дополнительные действия, например, запрос PIN-кода.

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

  • pam_unix.so: проверяет пароли, хранящиеся в системных файлах.
  • pam_google_authenticator.so: поддержка двухфакторной аутентификации.
  • pam_faillock.so: предотвращает перебор паролей.

Пример конфигурации

В файле /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
    

Эта настройка:

  • Проверяет пароль с использованием pam_unix.so.
  • Запрашивает одноразовый код через Google Authenticator.
  • Блокирует учетную запись после трех неудачных попыток ввода.

Этап account: Управление доступом

Этап account проверяет, имеет ли пользователь право на доступ в систему. Здесь могут выполняться дополнительные проверки, например, истечение срока действия учетной записи или ограничение по времени входа.

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

  • pam_unix.so: проверяет, не истек ли срок действия учетной записи или пароля.
  • pam_nologin.so: запрещает вход, если файл /etc/nologin существует.
  • pam_time.so: ограничивает доступ на основе времени или терминала.

Пример конфигурации

Пример конфигурации в файле /etc/pam.d/common-account:


account required pam_unix.so
account required pam_nologin.so
account optional pam_time.so
    

Эта настройка:

  • Проверяет состояние учетной записи и пароля через pam_unix.so.
  • Запрещает вход, если файл /etc/nologin существует.
  • Ограничивает доступ в определенные периоды времени.

Пример использования pam_time.so:


# В файле /etc/security/time.conf
login ; tty1 ; !Wk0000-2400
    

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

Этап password: Управление паролями

Этап password используется для изменения паролей. Это позволяет настроить политики сложности паролей, их срок действия и другие параметры.

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

  • pam_unix.so: управляет изменением паролей в системных файлах.
  • pam_pwquality.so: проверяет сложность пароля и накладывает ограничения.
  • pam_cracklib.so: устаревший модуль, который также проверяет качество пароля.

Пример конфигурации

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


password required pam_unix.so sha512
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1
    

Эта настройка:

  • Шифрует пароли с помощью алгоритма SHA-512.
  • Проверяет сложность пароля через pam_pwquality.so, требуя минимум одну заглавную букву и одну цифру.
  • Дает три попытки ввода нового пароля.

Этап session: Настройка пользовательской сессии

Этап session отвечает за настройку окружения пользователя после успешной аутентификации. Это может включать монтирование каталогов, установку лимитов ресурсов и выполнение скриптов.

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

  • pam_limits.so: задает лимиты использования ресурсов.
  • pam_motd.so: отображает сообщение дня (Message of the Day).
  • pam_umask.so: задает значения umask для пользователя.

Пример конфигурации

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


session required pam_limits.so
session optional pam_motd.so motd=/etc/motd
session required pam_umask.so
    

Эта настройка:

  • Устанавливает лимиты ресурсов через pam_limits.so.
  • Отображает сообщение дня из файла /etc/motd.
  • Задает umask, влияющий на права создаваемых файлов.

Заключение

Каждый из этапов PAM выполняет важную роль в процессе аутентификации и управления доступом. Разделение на auth, account, password и session позволяет гибко настраивать безопасность и функциональность системы. Грамотно настроенные модули на каждом этапе обеспечивают надежную защиту системы и удобство использования для пользователей.

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

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

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

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

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