User Tools

Site Tools


ubuntu_exim_fail2ban

Устанавливаем fail2ban

apt install fail2ban

Удаляем ufw,
ставил firewalld по аналогии как на Rocky

systemctl stop ufw
systemctl disable ufw
apt remove ufw

Устанавливаем firewalld

apt install firewalld

Включаем firewalld
будьте осторожны, если у вас были открыты сервисы в ufw
их нужно будет также открыть в firewalld

systemctl stop firewalld
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld

По умолчанию используется зона public,
поэтому здесь она используется.
Проверяем что открыто

firewall-cmd --list-all

Открываем нужные сервисы

firewall-cmd --add-service=smtp --permanent
firewall-cmd --add-service=smtps --permanent

Если нужно то pop3 и imap

firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=imaps --permanent
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=pop3s --permanent

Применяем правила

firewall-cmd --reload

Настраиваем fail2ban

cd /etc/fail2ban/
vi jail.local
[exim-pf]
enabled = true
filter = exim
action = exim-pf
logpath = /var/log/exim4/mainlog
ignoreip = 192.168.150.0/24
maxretry = 5
findtime  = 30m
bantime  = 2880m

Проверяем, что фильтр exim существует

ls /etc/fail2ban/filter.d/ | grep exim

Вывод будет примерно следующий, нужно чтобы был файл exim.conf
его не трогаем, он нужен чтобы находить нарушителей в логах Exim

exim-common.conf
exim.conf
exim-spam.conf

Создаем конфиг для action

cd /etc/fail2ban/action.d/
vi exim-pf.conf
[Definition]
actionban   = /usr/bin/firewall-cmd --add-rich-rule='rule family="ipv4" source address=<ip> reject'
actionunban = /usr/bin/firewall-cmd --remove-rich-rule='rule family="ipv4" source address=<ip> reject'

Конечно iptables намного гибче и можно блокировать по портам, но его чуть дольше настраивать.

Включаем fail2ban

systemctl enable fail2ban
systemctl start fail2ban

Проверяем

fail2ban-client status exim-pf

Забанить IP

fail2ban-client set exim-pf banip 92.118.38.55

Разбанить

fail2ban-client set exim-pf unbanip 92.118.38.55

Прим.:
Название exim-pf взято из fail2ban с pf во FreeBSD, название не стал менять

ubuntu_exim_fail2ban.txt · Last modified: 2023/06/20 17:33 by admin