Ну «Secure», так «secure» (часть 2)

В прошлой заметке я уже описал, как боролся с «подбирателями паролей» на моем ssh-демоне. В принципе, я считаю, что принятых мер достаточно для защиты моего сервера (да и кому он надо-то?!). Но, с другой стороны, тысячи строк с сообщением об ошибке в логе авторизации просто «напрягают зрение понапрасну». И вот, просматривая сайт с новостями программного обеспечения, я наткнулся на название программы, которое меня заинтересовало — «Fail2Ban«. Открыл у себя «Центр управления Mandriva Linux», в нем выбрал «Управление программами» и ввел имя программы в поле «Поиск». «Есть у нас такая программа» — сказал поиск. Поставил «птичку», установил. Чем заинтересовала-то меня данная программа? Вот что про нее написано;

Fail2Ban scans log files like /var/log/secure and bans IP that makes too many password failures. It updates firewall rules to reject the IP address. These rules can be defined by the user. Fail2Ban can read multiple log files including sshd or Apache web server logs.

А если вкратце и по русски, программа сканирует логи и динамически меняет правила файервола, запрещая доступ тем IP, с которых происходит слишком много НЕУДАЧНЫХ попыток авторизации (читай, «происходит подбор пароля»)!!! Вот и все!

Остается лишь в качестве подтверждения эффективности программы процитировать два лога. Первый — протокол авторизации в системе (файл /var/log/auth.log):

Jul 25 20:12:31 smb-svr sshd[26144]: Invalid user guest from 61.168.222.170
Jul 25 20:12:31 smb-svr sshd[26144]: error: Could not get shadow information for NOUSER
Jul 25 20:12:31 smb-svr sshd[26144]: Failed password for invalid user guest from 61.168.222.170 port 1652 ssh2
Jul 25 20:12:36 smb-svr sshd[26147]: Invalid user guest from 61.168.222.170
Jul 25 20:12:36 smb-svr sshd[26147]: error: Could not get shadow information for NOUSER
Jul 25 20:12:36 smb-svr sshd[26147]: Failed password for invalid user guest from 61.168.222.170 port 2597 ssh2
Jul 25 20:12:42 smb-svr sshd[26149]: Invalid user guest from 61.168.222.170
Jul 25 20:12:42 smb-svr sshd[26149]: error: Could not get shadow information for NOUSER
Jul 25 20:12:42 smb-svr sshd[26149]: Failed password for invalid user guest from 61.168.222.170 port 3700 ssh2

А второй — протокол работы самой программы (файл /var/log/fail2ban.log):

2008-07-25 20:12:43,045 fail2ban.actions: WARNING [ssh-iptables] Ban 61.168.222.170
2008-07-25 20:22:43,414 fail2ban.actions: WARNING [ssh-iptables] Unban 61.168.222.170

Для «полного понимания» добавлю лишь, что по умолчанию программа:

  • запрещает доступ с IP-адреса после трех неверных попыток ввода пароля;
  • блокирует доступ на 600 секунд.

Первое прекрасно видно при сравнении времени третьей попытки из первой «цитаты» со временем включения файервола во второй «цитате». Второе легко заметить, сравнив во второй «цитате» время включения и выключения блокирования адреса. При желании Вы можете изменить те значения настроек, которые Вас не устраивают , самостоятельно отредактировав файлы в папке /etc/fail2ban.

…С тех пор у меня нет в логах авторизации многотысячных записей «Failed password for invalid user...» Чего и вам желаю!,,,

ЗЫ. Балуясь на днях (зкспериментируя) с авторизацией в ssh, заполучил бан самого себя. «Сервер» дома, я на работе, а дела-то не ждут! Пришлось себя срочно «разрешать»… Спас Webmin. У него в разделе «Прочее» есть пункт «Командная оболочка (shell)» (командная строка). Вот в ней-то я и запустил команду:

fail2ban-client status

Сервер fail2ban ответил, что запущен следующий фильтр (Jail): ssh-iptables. Чтобы остановить его, ввел команду:

fail2ban-client stop ssh-iptables

И напоследок, чтобы на будущее меня ни в коем случае не банило, прописал свой рабочий адрес в файл /etc/fail2ban/jail.conf в строке:

ignoreip = 127.0.0.1 XXX.XXX.XXX.XXX

(адреса, когда их несколько, разделяются пробелами)…