🖧 Как защитить SSH с помощью pam_faillock: Блокировка неудачных попыток входа в систему |

🖧 Как защитить SSH с помощью pam_faillock: Блокировка неудачных попыток входа в систему

Мануал

Модуль pam_tally2, использовавшийся для блокировки учетных записей пользователей после определенного количества неудачных попыток входа по SSH, был устаревшим и заменен на pam_faillock в дистрибутивах на базе RHEL и других современных дистрибутивах Linux из-за большей гибкости и возможностей обеспечения безопасности.

Ранее модуль pam_tally2 отвечал за подсчет неудачных попыток входа и блокировку учетных записей.

Однако в рамках усовершенствования системы безопасности модуль pam_faillock стал стандартом для управления неудачными попытками входа в систему в новых версиях Linux, обеспечивая лучшую интеграцию и больше возможностей для настройки.

🖧 8 способов предотвратить атаки брутфорс на SSH на Linux (CentOS / RHEL)

Переход от 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, в зависимости от вашей системы и службы, которую вы настраиваете.

sudo vi /etc/pam.d/password-auth
sudo vi /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:

sudo systemctl restart sshd

Как проверить функциональность блокировки учетной записи SSH

После сохранения вышеуказанной конфигурации вы можете протестировать механизм блокировки входа, сделав 3 неудачные попытки входа на SSH-сервер.

ssh user@192.168.0.10
user@192.168.0.10's password:
Permission denied, please try again.
user@192.168.0.10's password:
Permission denied, please try again.
user@192.168.0.10's password:
Account locked due to 3 failed logins

Как проверить неудачные попытки входа в систему SSH для пользователя

Чтобы проверить неудачные попытки входа в систему для конкретного пользователя, выполните следующую команду:

sudo faillock --user username

Пример вывода:

Login           Failures  Latest failure     From
user                3     10/17/2024 14:15   192.168.0.5

Как сбросить или разблокировать учетную запись пользователя

Чтобы сбросить неудачные попытки и разблокировать учетную запись пользователя, выполните следующую команду:

sudo faillock --user username --reset

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

Проверка того, что учетная запись пользователя разблокирована

Вы можете убедиться, что учетная запись разблокирована, выполнив команду faillock еще раз:

sudo faillock --user username

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

Заключение

В заключение можно сказать, что модуль pam_faillock предоставляет улучшенный и более безопасный способ управления неудачными попытками входа в систему, заменяя устаревший pam_tally2.

Обязательно обновите конфигурационные файлы PAM для использования pam_faillock, чтобы оставаться в курсе лучших практик и стандартов безопасности.

Для получения дополнительной информации вы можете использовать man pam_faillock из командной строки.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий