Fail2ban: dovecot login / authのfail2banの設定に問題があります

作成日 2018年05月16日  ·  4コメント  ·  ソース: fail2ban/fail2ban

  • Fail2Banバージョンfail2ban / bionic、bionic、現在0.10.2-2すべて[インストール済み]
  • Linux divzero.at 4.15.0-20-generic#21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux
  • Ubuntu 18.04 LTS
  • [x] OS /配布メカニズムを介してインストールされたFail2Ban
  • [x]コードベースに追加の外部パッチを適用していません
  • [x]構成に対していくつかのカスタマイズが行われました(以下の詳細を提供してください)

問題:

やあ、
失敗した認証/ログイン試行を禁止しようとしています。 いくつかのチュートリアル/ハウツーがありますが、彼らはある種の時代遅れのregexを使用しているようですか?

/etc/fail2ban # fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot-pop3imap.conf

Running tests
=============
Use   failregex filter file : dovecot-pop3imap, basedir: /etc/fail2ban
ERROR: No failure-id group in '(?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*'

https://wiki.dovecot.org/HowTo/Fail2Ban

2ページ目の例ではエラーは発生しませんが、実際に実行したいことを実行できるかどうかもわかりません。

再現する手順

dovecotwikiに記載されているようにdovecot-pop3imap.confを作成します

予想される行動

失敗したログイン/認証の試行を禁止します。

観察された行動

Regexが機能していません。

追加情報

昨日ubuntuサーバーをアップグレードしましたが、新しいバージョンのfail2banがインストールされました。 それ以降、カスタム構成は機能しなくなります。

構成、ダンプ、およびその他の役立つ抜粋

/ etc / fail2ban /構成に対して行われたカスタマイズ

/var/log/fail2ban.logファイルの関連部分:

_できればloglevel = 4 fail2banを実行しているときに取得します_

2018-05-16 14:20:09,136 fail2ban.filter         [31796]: ERROR   No failure-id group in '(?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*'
2018-05-16 14:20:09,136 fail2ban.transmitter    [31796]: WARNING Command ['set', 'dovecot-pop3imap', 'addfailregex', '(?: pop3-login|imap-login): (?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed).*rip=(?P<host>\\S*),.*'] has failed. Received Rege
xException("No failure-id group in '(?: pop3-login|imap-login): (?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed).*rip=(?P<host>\\S*),.*'",)
2018-05-16 14:20:09,137 fail2ban                [31796]: ERROR   NOK: ("No failure-id group in '(?: pop3-login|imap-login): (?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed).*rip=(?P<host>\\S*),.*'",)

問題の監視対象ログファイルからの関連行:

最も参考になるコメント

あなたは今「DISLIKE」を見ますか...

そして開発者のsebresはこれをコメントします...

いや、 "開発者のsebresは"コメント-トークンの使用<HOST>の代わりに(?P<host>\S*)

regex (?P<host>\S*)はとにかく文書化されていない機能
https://github.com/fail2ban/fail2ban/blob/e2a255d104f947f149cc34b17e778c05175e9f78/ChangeLog#L9 -L22

さらにもう一度:

  • (?P<host>\S*) -いいえ。
  • <HOST><ADDR><DNS> -はい。

0.10以降のfail2banがIPv4とIPv6を区別する必要があるという理由だけで、それが書き直される理由です。
したがって、 (?P<host>\S*)の適切なregexベースの置換はより複雑です。

共通タグ<HOST>に加えて、現在可能な他の多くのタグがあります- <ADDR><IP4><IP6> 、およびDNS

障害IDのIPとして他のものを使用する場合は、 wiki ::を参照してください

例を書くのにsebresがかかる時間:

多すぎる(無料のため)。 しかし、彼(および他の多くの人)はすでに十分な例(上記のwikiを参照)、ドキュメント、および変更ログエントリ(誰も読まない)を書いています。

そして最後になりましたが、英語を学んでみてください。最初のコメントで答えを理解できるようになります。

  • 代わりに、 <HOST> (すべてのフォームを累積)、 <ADDR> (ipsのみ)、または<DNS> (dns-hostsのみ)を使用する必要があります。

Comprendo?

全てのコメント4件

(?P<host>\S*)値は無効になりました(0.10でのIPv6サポート以降、最新バージョンのfail2banには、DNS / IPv4 / IPv6のその他の処理とregexpがあります。これは、マッチング中にこのグループを区別するためです)。
したがって、代わりに<HOST> (すべてのフォームを累積)、 <ADDR> (ipsのみ)、または<DNS> (dns-hostsのみ)を使用する必要があります。

ところで。 補間<HOST>は、次のregexの「エイリアス」です。

(?:(?:::f{4,6}:)?(?P<ip4>(?:\\d{1,3}\\.){3}\\d{1,3})|\\[?(?P<ip6>(?:[0-9a-fA-F]{1,4}::?|::){1,7}(?:[0-9a-fA-F]{1,4}|(?<=:):))\\]?|(?P<dns>[\\w\\-.^_]*\\w))

DISLIKEボタンはどこにありますか。 ubuntuを更新した後、同じ問題についてコメントします。

fail2ban.filter         [8151]: ERROR   No failure-id group in '(?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*'
2018-08-15 14:19:18,200 fail2ban.transmitter    [8151]: WARNING Command ['multi-set', 'dovecot-pop3imap', 'addfailregex', ['(?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed|Aborted login \\(\\d+ authentication attempts).*rip=(?P<host>\\S*),.*', '.*(?:pop3-login|imap-login):.*(?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed|Aborted login \\(tried to use disallowed plaintext auth).*\\s+rip=(?P<host>\\S*),.*', 'pam.*dovecot.*(?:authentication failure).*\\s+rhost=<HOST>(?:\\s+user=.*)?\\s*$']] has failed. Received RegexException("No failure-id group in '(?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed|Aborted login \\(\\d+ authentication attempts).*rip=(?P<host>\\S*),.*'",)
2018-08-15 14:19:18,200 fail2ban                [8151]: ERROR   NOK: ("No failure-id group in '(?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \\(auth failed|Aborted login \\(tried to use disabled|Disconnected \\(auth failed|Aborted login \\(\\d+ authentication attempts).*rip=(?P<host>\\S*),.*'",)

そして開発者のsebresはこれにコメントします。

(?:(?:::f{4,6}:)?(?P<ip4>(?:\\d{1,3}\\.){3}\\d{1,3})|\\[?(?P<ip6>(?:[0-9a-fA-F]{1,4}::?|::){1,7}(?:[0-9a-fA-F]{1,4}|(?<=:):))\\]?|(?P<dns>[\\w\\-.^_]*\\w))

開発者のサーバーを理解していなかったので、誰もがそれを修復する方法を理解しています。 悪い開発者がそのようなことをやめるとき "(?:(?::: f {4,6}:)?(?P(?:\ d {1,3} \。){3} \ d {1,3})| \ [?(?P(?:[0-9a-fA-F] {1,4} ::?| ::){1,7}(?:[0-9a-fA-F] {1,4} |(?< = :):))\]?|(?P[\ w \-。^ _] * \ w)) "

そして、解決策を与えます。 動作する100%まともなマニュアル。 明日あなたは警察に行かなければなりません、誰かがあなたがマリファナを吸っているのを見て、あなたは刑務所に行きます。 問題は、それが同じであるために、なぜsebresが刑務所に入れられるのかということです:100%まともな説明はありません。

しかし、ここでの違いは、sebresが警察に不平を言うことと、ここのPEOPLESがsebresのような悪い開発者に不平を言うことはないということです。 私は人々が悪い開発者のためにデータベースを作ることに投票します、誰もが毎日悪い開発が高いのを見るでしょう。 したがって、sebresが警察の刑務所に行くか、人々が不平を言っているかに違いはありません。 したがって、sebresには置く時間があります:
だからあなたは使うべきです(すべてのフォームを累積)、(ipsのみ)または(dns-hostsのみ)の代わりに。 そしてその後、誤った方向に進んだ:ところで。 補間次のregexの「エイリアス」です。

例:sebresが書くのにどれくらいの時間がかかるか例:

1分。 sebresと比較してfail2banコードを記述しています。 また、dovecot-pop3imapの解決に失敗すると、syslogがフラッディングすることを忘れないでください。

あなたは今「DISLIKE」を見ますか...

そして開発者のsebresはこれをコメントします...

いや、 "開発者のsebresは"コメント-トークンの使用<HOST>の代わりに(?P<host>\S*)

regex (?P<host>\S*)はとにかく文書化されていない機能
https://github.com/fail2ban/fail2ban/blob/e2a255d104f947f149cc34b17e778c05175e9f78/ChangeLog#L9 -L22

さらにもう一度:

  • (?P<host>\S*) -いいえ。
  • <HOST><ADDR><DNS> -はい。

0.10以降のfail2banがIPv4とIPv6を区別する必要があるという理由だけで、それが書き直される理由です。
したがって、 (?P<host>\S*)の適切なregexベースの置換はより複雑です。

共通タグ<HOST>に加えて、現在可能な他の多くのタグがあります- <ADDR><IP4><IP6> 、およびDNS

障害IDのIPとして他のものを使用する場合は、 wiki ::を参照してください

例を書くのにsebresがかかる時間:

多すぎる(無料のため)。 しかし、彼(および他の多くの人)はすでに十分な例(上記のwikiを参照)、ドキュメント、および変更ログエントリ(誰も読まない)を書いています。

そして最後になりましたが、英語を学んでみてください。最初のコメントで答えを理解できるようになります。

  • 代わりに、 <HOST> (すべてのフォームを累積)、 <ADDR> (ipsのみ)、または<DNS> (dns-hostsのみ)を使用する必要があります。

Comprendo?

sebresいつか人間が来て、あなたのプログラムを書き直します

  1. それは私のではありません
  2. あなたは今始めることができます...
  3. 議論は終わりました。
このページは役に立ちましたか?
0 / 5 - 0 評価