Почему Fail2ban не отправляет почту для одной конкретной тюрьмы?

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

Когда адрес заблокирован, мне нравится получать почту. Это работает во всех тюрьмах, кроме одного. Зачем?

Вот соответствующие разделы /etc/fail2ban/jail.local:

 # My own domain is here, not example.com, obviously. sender = Fail2Ban@example.com banaction = iptables-multiport mta = sendmail action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"] action = %(action_mwl)s # This one is working. Others are as well. [postfix] enabled = true port = smtp,ssmtp,submission filter = postfix logpath = /var/log/mail.log # This one is not working. [recidive] enabled = true filter = recidive logpath = /var/log/fail2ban.log bantime = 604800 ; 1 week findtime = 86400 ; 1 day maxretry = 5 

Вот вывод состояния fail2ban-client status recidive (немного анонимного):

 Status for the jail: recidive |- filter | |- File list: /var/log/fail2ban.log | |- Currently failed: 34 | `- Total failed: 270 `- action |- Currently banned: 9 | `- IP list: 195.154.237.*** 91.200.12.*** 195.154.255.*** `- Total banned: 12 

Postfix:

 Status for the jail: postfix |- filter | |- File list: /var/log/mail.log | |- Currently failed: 0 | `- Total failed: 1058 `- action |- Currently banned: 0 | `- IP list: `- Total banned: 162 

postfix.conf:

 [INCLUDES] before = common.conf [Definition] _daemon = postfix/smtpd failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$ ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$ ^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$ ^%(__prefix_line)simproper command pipelining after \S+ from [^[]*\[<HOST>\]:?$ ^%(__prefix_line)sNOQUEUE: reject: RCPT from (.*)\[<HOST>\]: 454 4\.7\.1\.* ignoreregex = 

recidive.conf:

 [INCLUDES] before = common.conf [Definition] _daemon = fail2ban\.actions _jailname = recidive failregex = ^(%(__prefix_line)s|,\d{3} fail2ban.actions%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+<HOST>\s*$ 

Из /var/log/fail2ban.log:

 2016-12-15 08:01:52,620 fail2ban.actions[18430]: WARNING [wordpress-soft] Unban 160.202.163.*** 2016-12-15 08:01:59,649 fail2ban.actions[18430]: WARNING [wordpress-soft] Ban 160.202.163.*** 2016-12-15 08:02:00,610 fail2ban.actions[18430]: WARNING [recidive] Ban 160.202.163.*** 2016-12-15 08:12:00,587 fail2ban.actions[18430]: WARNING [wordpress-soft] Unban 160.202.163.*** 

Поэтому я уверен, что функция почты Fail2ban работает. И все тюрьмы работают. Кажется, нет никакой разницы между рецидивирующими и другими тюрьмами. Что мне не хватает?

У меня такая же проблема. У меня есть 2 тюрьмы, ssh и recidive. Тюрьма ssh посылала мне электронные письма отлично, но ничего не отбирала. Я бегаю:

 Fail2Ban v0.8.13 

Моя соответствующая глобальная конфигурация идентична тому, что вы опубликовали:

  banaction = iptables-multiport mta = sendmail action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"] action = %(action_mwl)s 

Моя первоначальная конфигурация jail recidive jail (которая не отправляла электронные письма):

 [recidive] enabled = true filter = recidive logpath = /var/log/fail2ban.log #action = iptables-allports[name=recidive] # sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log] bantime = 604800 ; 1 week findtime = 604800 #findtime = 86400 ; 1 day maxretry = 3 

Обратите внимание, что я прокомментировал действие по возврату по умолчанию. По крайней мере, для меня это было дефолтом. Я сделал это, потому что я хотел, чтобы электронные письма возвращались, как ssh, которые также использовали действие по умолчанию. С этой конфигурацией … я ничего не получил. Сверчки. Но приемная тюрьма действительно сработала. Я точно не знаю, в чем проблема, но я знал, что должен это исправить. Итак, я сначала попробовал раскомментировать действие. Затем он все еще работал, но никаких писем. Или, подумал я. Оказалось, что электронные письма отправляются в локальную учетную запись root. Я нашел их в почтовом ящике / var / mail / [user], к которому я отправил корневую почту. Итак, тогда я понял, что это было потому, что destemail не использовался в этом действии по умолчанию. Итак, что я в итоге сделал, просто копировал глобальный по умолчанию action_mwl и настраивал его, чтобы вывести порт.

Итак, моя окончательная конфигурация тюремного заключения, которая работала:

 enabled = true filter = recidive logpath = /var/log/fail2ban.log #action = iptables-allports[name=recidive] # sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log] action = %(banaction)s[name=%(__name__)s, protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"] 

Возможно, это все по дизайну или старой ошибке – я не знаю. Но это то, как я заработал. Это может быть слишком поздно, чтобы помочь вам, но, возможно, это поможет следующей в одной лодке …