Linux

Fail2ban для Postfix и Dovecot: защита почтового сервера от перебора паролей

Fail2ban полезен на публичном почтовом сервере, потому что SMTP AUTH, IMAP и POP3 постоянно сканируются ботами. Но его задача узкая: временно блокировать источники повторяющихся неудачных попыток. Он не заменяет TLS, сильные пароли, MFA там, где она доступна, обновления и ограничение лишних сервисов.

Сначала убедитесь, что события вообще попадают в лог

До настройки jail выполните несколько тестовых неудачных входов и найдите их в journal или почтовом log-файле. Если Dovecot и Postfix логируют в systemd journal, не нужно искусственно переносить всё в старый путь вроде /var/log/maillog только ради чужого конфига.

Какие сервисы имеет смысл защищать

  • Dovecot IMAP/POP3 authentication;
  • Postfix submission/SMTP AUTH;
  • при необходимости — веб-почту и административную панель отдельными jails;
  • не смешивайте все сервисы в один огромный regex.

Используйте штатные фильтры как отправную точку

В современных пакетах Fail2ban обычно уже есть фильтры для распространённых почтовых сервисов. Сначала проверьте их на своих логах, а не копируйте regex десятилетней давности. Формат сообщений зависит от версии Dovecot, Postfix и способа логирования.

Параметры jail

findtime задаёт окно наблюдения, maxretry — сколько совпадений допускается в этом окне, bantime — длительность блокировки. Слишком агрессивные значения могут заблокировать офис с одним внешним IP из-за пары пользователей с устаревшим паролем.

Тестируйте до включения бана

Перед активацией jail прогоните фильтр по реальному лог-файлу через fail2ban-regex. Убедитесь, что он ловит именно authentication failures, а не нормальные disconnect или ошибки сети. После запуска проверьте status jail и список заблокированных адресов.

Не заблокируйте свои сети

Административные адреса и внутренние сервисы можно добавить в ignoreip, но делайте исключения минимальными. Не добавляйте широкие публичные диапазоны «чтобы не мешало». Для крупных NAT-сетей лучше поднять порог и разбираться с причиной повторных ошибок авторизации.

Firewall backend зависит от системы

Старые примеры почти всегда используют iptables. На современной системе backend может быть nftables, firewalld или другой механизм. Проверьте, какое action реально применяется вашим пакетом Fail2ban и не создаёт ли он правила параллельно с основным firewall.

Что мониторить

Полезно отслеживать рост числа authentication failures, количество банов и адреса, которые повторяются сутками. Если один аккаунт постоянно атакуют, смена имени пользователя обычно мало помогает — важнее сильный пароль, отключение неиспользуемых протоколов и корректная политика авторизации.

Итог: Fail2ban — дополнительный слой. Настройте сначала нормальные логи и безопасную почтовую аутентификацию, затем включайте небольшие понятные jails и проверяйте их на реальных событиях.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *