Image

База знаний → Защита почтового сервера от подбора паролей с помощью Fail2Ban

[Виртуальные сервера]
Дата публикации: 30.05.2023

Настроим Fail2Ban, данная служба позволяет защитить сервер от флуда, подбора паролей к службам. Ежедневно к серверам обращаются тысячи сторонних сервисов и часть из них является вредоносными. С помощью Fail2Ban мы будем блокировать ip адреса при нескольких неуспешных попыток авторизации.

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


Вы также можете заказать VPS с уже преднастроенной операционной системой и получить готовый корпоративный почтовый сервер по цене VPS сервера.


1. Установим службу Fail2Ban 

apt install fail2ban

Отредактируем настройки

vi /etc/fail2ban/jail.d/defaults-debian.conf

[sshd]

enabled = true

[postfix]

enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m

В данной конфигурации мы включили защиту служб ssh и postfix, которые будет обрабатывать log файл и блокировать ip адреса при нескольких неудачных попытках авторизации.

Для проверки работы наличия совпадений используйте команду

fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf

Мы использовали готовый фильтр по умолчанию и в нашем случае он сразу оказался рабочим.

2. Запуск службы

systemctl enable --now fail2ban

Мы запустили службу и добавили в автозапуск.

Теперь можно проверить лог:

more /var/log/fail2ban.log

3. Управление службой

Для просмотра состояния, а также последней активности воспользуйтесь командой

fail2ban-client status - Она покажет все джейлы и их состояние.

fail2ban-client status postfix - покажет активность по джейлу, включая заблокированные в данный момент ip адреса.

Для разблокировки ip адреса используйте команду

fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx

Где: postfix - имя джейла, а xxx.xxx.xxx.xxx - ip адрес из списка #fail2ban-client status postfix

4. Добавим джейл для Rouncube авторизации

Добавим в файл

vi /etc/fail2ban/jail.d/defaults-debian.conf

[roundcube-auth]

enabled    = true

filter = roundcube-auth

port    = http,https

action = iptables[name=Roundcube-auth, port=http, protocol=tcp]

logpath    = /usr/share/nginx/html/webmail/logs/errors.log

bantime = 120m

maxretry = 3

findtime = 60m

При трех неудачных попытках авторизации в веб почте блокируем доступ на 2 часа.

Перезапустим службу:

service fail2ban restart

Настройка фильтра завершена.





Нет комментариев