Foren
Отличное место для обсуждения тем с другими пользователями
Защита почтового сервера от подбора паролей с помощью Fail2Ban
Настроим Fail2Ban, данная служба позволяет защитить сервер от флуда, подбора паролей к службам. Ежедневно к серверам обращаются тысячи сторонних сервисов и часть из них является вредоносными. С помощью Fail2Ban мы будем блокировать ip адреса при нескольких неуспешных попыток авторизации.
В данном руководстве предполагается, что сам почтовый сервер у Вас уже настроен и необходимо установить защиту от подбора паролей и другой нежелательной сетевой активности.
1. Установим службу Fail2Ban
# apt install fail2ban
Отредактируем настройки
# nano /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 авторизации
Добавим в файл
# nano /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
Настройка фильтра завершена.