Fail2banが特定の刑務所に電子メールを送信しないのはなぜですか?

Fail2banが特定の刑務所に電子メールを送信しないのはなぜですか?

Fail2banは仕事をしており、fail2ban-client statusすべてうまくいき、問題のあるアドレスがブロックされていることを示しています。

私はアドレスがブロックされたときにメールを受信するのが大好きです。これは、1つの刑務所を除くすべての刑務所に適用されます。なぜ?

/etc/fail2ban/jail.localの関連部分は次のとおりです。

# My own domain is here, not example.com, obviously.
sender = [email protected]

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

サフィックス:

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

サフィックス.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 =

再発性.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の電子メール機能が正しく動作すると確信しています。すべての刑務所が運営されています。ジェボム刑務所は他の刑務所と大きく変わらないようです。私は何を見逃していますか?

答え1

私も同じ問題があります。 SSHとジェボナーという二つの刑務所があります。 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

私の初期の再犯刑務所の設定(電子メールは送信されません):

[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のように機能したいので、これを行っています。この構成では...何も得られません。クリケット。しかし、ジェボム刑務所は効果があります。問題が正確に何であるかはわかりませんでしたが、問題を解決する必要があることがわかりました。そのため、まずそのジョブのコメントを解除しようとしました。その後、まだ動作しますが、電子メールはありません。それともそう思いました。このメールはローカルルートアカウントに送信されることがわかりました。ルートメールを転送した/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"]

おそらくこれはすべて意図されているかもしれませんし、古い間違いかもしれません。しかし、それが私が動作する方法です。助けには遅すぎるかもしれませんが、同じことをする次の人に役立つかもしれません。

関連情報