В этой статье я покажу пример настройки 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