Модуль pam_tally2, использовавшийся для блокировки учетных записей пользователей после определенного количества неудачных попыток входа по SSH, был устаревшим и заменен на pam_faillock в дистрибутивах на базе RHEL и других современных дистрибутивах Linux из-за большей гибкости и возможностей обеспечения безопасности.
Ранее модуль pam_tally2 отвечал за подсчет неудачных попыток входа и блокировку учетных записей.
Однако в рамках усовершенствования системы безопасности модуль pam_faillock стал стандартом для управления неудачными попытками входа в систему в новых версиях Linux, обеспечивая лучшую интеграцию и больше возможностей для настройки.
🖧 8 способов предотвратить атаки брутфорс на SSH на Linux (CentOS / RHEL)
- Переход от pam_tally2 к pam_faillock
- Как заблокировать и разблокировать учетные записи пользователей с помощью pam_faillock
- Как проверить функциональность блокировки учетной записи SSH
- Как проверить неудачные попытки входа в систему SSH для пользователя
- Как сбросить или разблокировать учетную запись пользователя
- Проверка того, что учетная запись пользователя разблокирована
- Заключение
Переход от pam_tally2 к pam_faillock
Хотя pam_tally2 состоял из двух частей – pam_tally2.so и команды pam_tally2 – он был снят с производства в пользу pam_faillock, который предназначен для более безопасной и гибкой обработки попыток входа в систему.
pam_faillock предлагает аналогичную функциональность, но с такими улучшениями, как:
- Улучшенное протоколирование и отчетность о неудачных попытках.
- Улучшенная обработка политик блокировки учетных записей.
- Поддержка настраиваемых ограничений на неудачные попытки входа и автоматическая разблокировка учетной записи по истечении таймаута.
Как заблокировать и разблокировать учетные записи пользователей с помощью pam_faillock
Откройте оба файла конфигурации PAM /etc/pam.d/password-auth и /etc/pam.d/sshd, в зависимости от вашей системы и службы, которую вы настраиваете.
Добавьте следующие строки в начало секции auth, чтобы настроить политику неудачных попыток входа:
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=1200
Добавьте следующую строку в раздел учетных записей, чтобы включить управление учетными записями при сбоях:
account required pam_faillock.so
Пояснения к параметрам:
- deny=3: Отказ в доступе после 3 неудачных попыток.
- even_deny_root: Применять политику и к пользователю root.
- unlock_time=1200: Автоматически разблокировать учетную запись через 20 минут (1200 секунд). Удалите этот параметр, если хотите, чтобы учетная запись оставалась заблокированной до ручного сброса.
- audit: Регистрирует неудачные попытки входа в систему в системном журнале аудита.
Теперь откройте файл /etc/security/faillock.conf и укажите, сколько неудачных попыток приведет к блокировке, а также продолжительность периода блокировки.
# Number of allowed failures before lockout deny = 5 # Lockout duration in minutes unlock_time = 15 # Path to the faillock database # Optional: You can specify where to store faillock information # faillock_path = /var/lib/faillock
Далее откройте файл /etc/ssh/sshd_config и включите следующий параметр, чтобы использовать PAM для аутентификации SSH.
UsePAM yes
Чтобы применить изменения, перезапустите службу SSH:
Как проверить функциональность блокировки учетной записи SSH
После сохранения вышеуказанной конфигурации вы можете протестировать механизм блокировки входа, сделав 3 неудачные попытки входа на SSH-сервер.
Как проверить неудачные попытки входа в систему SSH для пользователя
Чтобы проверить неудачные попытки входа в систему для конкретного пользователя, выполните следующую команду:
Пример вывода:
Login Failures Latest failure From user 3 10/17/2024 14:15 192.168.0.5
Как сбросить или разблокировать учетную запись пользователя
Чтобы сбросить неудачные попытки и разблокировать учетную запись пользователя, выполните следующую команду:
Эта команда удаляет счетчик неудачных попыток и разблокирует пользователя.
Проверка того, что учетная запись пользователя разблокирована
Вы можете убедиться, что учетная запись разблокирована, выполнив команду faillock еще раз:
Если нет неудачных попыток входа, вывод будет пустым, что означает, что учетная запись пользователя разблокирована.
Заключение
В заключение можно сказать, что модуль pam_faillock предоставляет улучшенный и более безопасный способ управления неудачными попытками входа в систему, заменяя устаревший pam_tally2.
Обязательно обновите конфигурационные файлы PAM для использования pam_faillock, чтобы оставаться в курсе лучших практик и стандартов безопасности.
Для получения дополнительной информации вы можете использовать man pam_faillock из командной строки.