Рано или поздно, но настанет такое время, когда ваш сервер подвергнется брутфорсу, иначе говоря кто-то пытается подобрать пароль, как правило из вне.
Допустим у Вас есть почтовый сервер, на котором настроена smtp-авторизация. Вы проверились и знаете, что ваш сервер не является open relay. Сотрудники фирмы пользуются почтой за пределами офиса. Всё как бы хорошо. Но однажды в логах вы заметили следы подбора
Apr 2 20:35:38 mx pop3d: LOGIN FAILED, user=root, ip=[177.11.48.10]
Apr 2 20:35:44 mx pop3d: LOGIN FAILED, user=lp, ip=[177.11.48.10]
Apr 2 20:35:51 mx pop3d: LOGIN FAILED, user=games, ip=[177.11.48.10]
Apr 2 20:35:57 mx pop3d: LOGIN FAILED, user=man, ip=[177.11.48.10]
Apr 2 20:36:03 mx pop3d: LOGIN FAILED, user=at, ip=[177.11.48.10]
После такого хочется этот хост как-то блокировать
fail2ban — надёжная защита от брутфорса
Программа висит демоном и следит за логами. При наступлении maxretry неудачных попыток на протяжении времени findtime, хост атакующего блокируется на время bantime следствами ipfw/iptables/tcpwraper. Бан не будет сниматься автоматически если указан параметр bantime = -1. Администратор на почту получает отчёт о событии. Программа работает со следующими популярными ПО:
apache, asterisk, courier-imap, cyrus-imap, cyrus-sasl, dovecot, dropbear, exim, gssftpd, lighttpd, postfix, proftpd, pure-ftpd, qmail, sendmail, sshd, vsftpd, wuftpd, xinetd
Основной файл конфигурации jail.conf. В нём-то и настраивается слежение за логами нужных серсисов. Конфиг прост и интуитивно понятен. В нашем конкретном случае он выглядит так
[DEFAULT] ignoreip = 127.0.0.1/8 bantime = 600 findtime = 600 maxretry = 3 backend = auto usedns = warn [courierimap] enabled = true port = imap filter = courierlogin action = ipfw[name=%(__name__)s, port=%(port)s] logpath = /var/log/maillog/maillog.log maxretry = 3 [sasl-ipfw] enabled = true filter = sasl backend = polling action = ipfw[name=sasl, port=smtp, protocol=tcp] sendmail-whois[name=sasl, dest=admin@my.firma] logpath = /var/log/maillog/maillog.log maxretry = 3
В ipfw.conf ставим localhost = me

- Системный администратор с 2000 года
- Участник Freelancehunt, Хабр Q&A, cyberforum
- Кейсы