ssh

Безопасность SSH является главным приоритетом при настройке вашего сервера. Но вот настройки SSH, по умолчанию, обычно недостаточно надежны, чтобы защитить ваш сервер от внешних атак.

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

В этой статье рассмотрим, как заблокировать учетную запись системного пользователя после определенного количества неудачных попыток входа в систему по SSH в дистрибутивах на основе RedHat. В дистрибутивах на основе Debian вам необходимо использовать модуль pam_tally2 для блокировки неудачных входов в систему SSH.

Здесь основное внимание уделяется обеспечению простой безопасности сервера путем блокировки учетной записи пользователя после нескольких последовательных неудачных аутентификаций SSH.

Что такое модуль pam_faillock?

Модуль pam_faillock является частью Linux PAM (подключаемые модули аутентификации), утилиты, состоящей из общих библиотек, которая отделяет приложения от стандартных методов аутентификации.

Он принимает проверки подлинности от таких программ, как sshd, gdm, login и многих других, и аутентифицирует пользователя в этих службах или приложениях в системах Linux.

Модуль записывает неудачные попытки аутентификации для каждого пользователя и временно блокирует учетную запись пользователя, если количество неудачных попыток аутентификации превышает определенный лимит. Неудачные попытки входа сохраняются в файлах для каждого пользователя в каталоге Tally, который по умолчанию называется /var/run/faillock/.

Модуль pam_faillock заменяет модули pam_tally и pam_tally2, которые были убраны в RHEL 7 и RHEL 8. Он предлагает больше гибкости и возможностей, чем эти два модуля.

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

Вы можете настроить вышеуказанную функциональность в файлах /etc/pam.d/system-auth и /etc/pam.d/password-auth, добавив записи в раздел auth.

Чтобы заблокировать или запретить пользователям доступ к системе после 3 неудачных попыток SSH и разблокировать учетную запись пользователя через 1200 секунд, добавьте следующие строки в раздел аутентификации.

Где:

  • audit — включает аудит пользователей.
  • deny — используется для определения количества попыток (в данном случае 3), после которых учетная запись пользователя должна быть заблокирована.
  • unlock_time – устанавливает время (600 секунд = 10 минут), в течение которого учетная запись должна оставаться заблокированной.

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

Раздел auth в обоих файлах должен иметь содержимое, расположенное ниже, в следующем порядке:

Затем перейдите в раздел учетной записи и добавьте следующую строку в оба вышеуказанных файлах

После добавления вышеуказанных настроек оно должно выглядеть, примерно, следующим образом.

Блокировка root после неудачного входа по SSH.

Вы можете добавить параметр even_deny_root в раздел auth, чтобы заблокировать как пользователя root, так и обычного пользователя. В этом примере время разблокировки для обычных пользователей составляет 1200 секунд (20 минут) и 3600 секунд (60 минут или 1 час) для пользователя root после 3 неудачных попыток входа по SSH.

После того, как вы все настроили. Нужно перезапустить службы удаленного доступа, такие как sshd, чтобы вышеуказанная политика вступила в силу. В данном случае для использования ssh при подключении к серверу.

Теперь проверим работоспособность наших изменений.

Просмотреть неудачные попытки входа.

Вы можете просмотреть все журналы неудачной аутентификации SSH с помощью утилиты Faillock, которая используется для отображения и изменения журнала неудачной аутентификации. Для этого используется следующая команда:

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

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

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

Отключить блокировку пользователя после неудачного входа в систему по SSH.

Чтобы сообщить системе не блокировать пользователя или учетные записи пользователей после нескольких неудачных попыток входа в систему, добавьте запись, чуть выше места первого вызова pam_faillock в разделе аутентификации в обоих файлах (/etc/pam.d/system). -auth и /etc/pam.d/password-auth) следующим образом.

Как отключить модуль Faillock.

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

Дополнительную информацию можно найти на страницах руководства pam_faillock и Faillock.

Заключение.

Способов блокировки пользователей множество, в том числе и ограничение попыток входа. В этой статье рассмотрели один из них. Надеюсь будет полезно.

Добавить комментарий