Отправка email уведомлений Fail2ban

В этой статье я покажу пример настройки email уведомлений Fail2ban.

Допустим есть отдельные конфигурации для каждой службы, откроем например для SSH и для «action» добавим в конце одну строку:

nano /etc/fail2ban/jail.d/sshd.local
[sshd]
backend     = polling
journalmatch=
enabled     = true
maxretry    = 1
bantime     = 90d
#findtime    = 12h
filter      = sshd
logpath     = /var/log/auth.log
#action     = iptables-allports
#action      = iptables-multiport[name=sshd, port="2222", protocol=tcp]
action      = nftables-multiport[name=sshd, port="2222", protocol=tcp]
              banned_db[name=sshd, port="2222", protocol=tcp]
              %(mta)s[sender="%(sender)s", dest="%(destemail)s"]

Чтобы получать также whois информацию и часть из логов, то изменим последнюю строку на (старую можно закомментировать, на случай если нужно будет отправлять меньше информации, и кстати whois занимает времени несколько секунд для каждого IP адреса):

%(mta)s-whois-lines[sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]

Еще пример уведомления + WHOIS (без логов):

%(mta)s-whois[sender="%(sender)s", dest="%(destemail)s"]

Установим whois если он не установлен:

apt update
apt install whois

Теперь допустим существует файл jail.local:

sudo nano /etc/fail2ban/jail.local
[DEFAULT]
findtime    = 12h
bantime     = 30d
maxretry    = 5
ignoreip    = 127.0.0.1 127.0.0.0/8 10.0.0.0/22

Если нет, то создадим и в его конце добавим почтовые параметры (mta может mail, sendmail, postfix, smtp, и т.д.):

destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)s

action_ — просто бан без уведомлений
action_mw — шлёт письмо с сообщением о бане
action_mwl — письмо + лог

В файл jail.conf лучше не указывать, так как это шаблон конфигурации по умолчанию и он может перезаписаться после обновления fail2ban, jail.local это ваша конфигурация и она приоритетнее jail.conf, в ней можно описать все что нужно, в том числе и нужные тюрьмы, например sshd либо настроить тюрьмы в отдельных файлах, например в /jail.d/sshd.local.

После того как настроены email уведомления, добавим в ban тестовый IP и убедимся что email доставлен:

fail2ban-client set sshd banip 1.2.3.4
fail2ban-client set sshd unbanip 1.2.3.4

Можно также проверить отправку письма по sendmail, mail и т.д.:

echo "Test sendmail" | sendmail -v [email protected]
echo "Test mail" | mail -s "Fail2ban test" [email protected]

Смотрите также мою статью:
Установка и настройка Fail2ban

Оставьте комментарий

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