Практические примеры настройки PAM

Практические примеры настройки PAM

Практические примеры настройки PAM

Практические примеры настройки PAM

Введение

Практическая настройка PAM (Pluggable Authentication Modules) позволяет реализовать различные сценарии управления доступом и аутентификацией. В этом разделе представлены реальные примеры конфигурации для решения типичных задач: ограничение входа, двухфакторная аутентификация, настройка паролей и управление ресурсами.

Пример 1: Ограничение доступа по времени

Для ограничения входа пользователей в определенное время используется модуль pam_time.so. Этот модуль считывает правила из файла /etc/security/time.conf.

Настройка PAM

Добавьте следующую строку в файл /etc/pam.d/sshd:


account required pam_time.so
    

Правила ограничения

В файле /etc/security/time.conf можно указать периоды времени, в которые вход запрещен:


# Ограничение доступа в выходные дни
sshd ; * ; !Wk0000-2400
    

Этот пример запрещает доступ ко всем сервисам SSH (sshd) для всех пользователей (*) в выходные дни.

Пример 2: Настройка двухфакторной аутентификации

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

Настройка PAM

Добавьте модуль в файл /etc/pam.d/sshd:


auth required pam_google_authenticator.so
    

Подготовка учетной записи

  1. Установите приложение Google Authenticator на мобильное устройство.
  2. Для настройки пользователя выполните команду: google-authenticator.
  3. Следуйте инструкциям для создания секретного ключа и получения QR-кода.

Теперь при входе в систему пользователю потребуется вводить одноразовый код из приложения.

Пример 3: Защита от перебора паролей

Для предотвращения перебора паролей используется модуль pam_faillock.so, который блокирует учетные записи после нескольких неудачных попыток входа.

Настройка PAM

Добавьте следующие строки в файлы /etc/pam.d/common-auth и /etc/pam.d/common-account:


# /etc/pam.d/common-auth
auth required pam_faillock.so preauth silent deny=3 unlock_time=600

# /etc/pam.d/common-account
account required pam_faillock.so
    

Эта конфигурация:

  • Блокирует учетные записи после трех неудачных попыток входа (deny=3).
  • Разблокирует учетную запись автоматически через 10 минут (unlock_time=600).

Пример 4: Политика сложности паролей

Модуль pam_pwquality.so позволяет задать минимальные требования к сложности и длине пароля.

Настройка PAM

Добавьте следующую строку в файл /etc/pam.d/common-password:


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

Эта конфигурация:

  • Требует, чтобы пароль содержал хотя бы одну цифру (dcredit=-1).
  • Требует, чтобы пароль содержал хотя бы одну заглавную букву (ucredit=-1).
  • Устанавливает минимальную длину пароля в 12 символов (minlen=12).
  • Предоставляет три попытки для ввода нового пароля (retry=3).

Пример 5: Ограничение использования ресурсов

Модуль pam_limits.so позволяет устанавливать лимиты на использование ресурсов для пользователей и групп.

Настройка PAM

Добавьте модуль в файл /etc/pam.d/common-session:


session required pam_limits.so
    

Настройка лимитов

Добавьте ограничения в файл /etc/security/limits.conf:


# Лимиты для студентов
@students hard nproc 50
@students soft nproc 30

# Лимиты для сотрудников
@staff soft nofile 1024
@staff hard nofile 4096
    

Эта настройка ограничивает:

  • Количество процессов для студентов до 50 (nproc).
  • Максимальное количество открытых файлов для сотрудников до 4096 (nofile).

Заключение

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

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

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

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

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

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