FreeBSD: блокируем bruteforce перебор паролей с помощью pam_af

Думаю любой, кто администрирует *nix сервера обращал внимание на множество ботов, пытающихся подобрать пароль к ssh. Достаточно взглянуть на auth.log:

Sep  5 16:25:56  sshd[10571]: Invalid user nagios from 196.46.242.38
Sep  5 16:28:07  sshd[10573]: Invalid user nagios from 196.46.242.38
Sep  5 16:30:15  sshd[10803]: Invalid user nagios from 196.46.242.38
Sep  5 16:32:24  sshd[10805]: Invalid user nagios from 196.46.242.38
Sep  5 16:34:40  sshd[10831]: Invalid user oracle from 196.46.242.38
Sep  5 16:36:53  sshd[11061]: Invalid user oracle from 196.46.242.38
Sep  5 16:39:12  sshd[11063]: Invalid user oracle from 196.46.242.38


Конечно, чтобы обезопасить себя необходимо прописать пользователей, которым разрешен доступ через ssh в /etc/ssh/sshd_config:

AllowUsers user1


Кроме того, нам поможет pam модуль pam_af. Он отслеживает число неудачных попыток и блокирует доступ на заданное время, кроме того, можно прописать команды, которые будут выполняться при блокировании и при разблокировании. Это более естественный способ, чем парсить лог файл (как, например, в fail2ban).

Устанавливаем:

pkg_add -r pam_af


Главное перед тем как начать — будьте осторожны, не заблокируйте себе доступ! Чтобы заблокировать себе доступ достаточно ошибиться в настройке pam!



Редактируем настройки pam /etc/pam.d/sshd, добавив наш модуль в секцию auth сверху:

( Читать дальше )