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