Практические примеры настройки 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
Подготовка учетной записи
- Установите приложение Google Authenticator на мобильное устройство.
- Для настройки пользователя выполните команду:
google-authenticator
. - Следуйте инструкциям для создания секретного ключа и получения 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 можно реализовать широкий спектр задач по управлению аутентификацией и доступом. Гибкость настройки модулей позволяет легко адаптировать систему под конкретные требования безопасности.