ローカルのfail2banフィルター定義にルールを「追加」する方法は?


10

私の管理下にあるサーバーにDebianによってパッケージ化されたfail2banをインストールしました。以前からいくつかのfailregexeがあるので、それらもローカルフィルター定義ファイルに入れて、それらも考慮されるようにします。したがって、たとえば/etc/fail2ban/filter.d/sshd.confや/etc/fail2ban/filter.d/sshd.localなどになります。これは、セットアップすることをお勧めする方法であり、それが何であるかについて問題なく機能しているように見えます。

ただし、.localファイルでは、実際に.confファイルのfailregexeのリスト全体を置き換えています。ドキュメントにはそれを行う他の方法があることは示されていないようで、それを機能させるために、ディストリビューションで提供された.confファイルを.localファイルにコピーし、いくつかの追加を行いました。

ディストリビューションで管理されているログエントリフィルターの正規表現への変更に遅れをとらないようにするアップストリームとDebianのメンテナの仕事の恩恵を受けて、リストを単純に修正できたら本当に素晴らしいです。

私が考えることができる唯一の本当の回避策は、実際に2つのjailを作成することです。1つはディストリビューション提供の構成を使用し、もう1つは自分のjailを使用します。これには、独立した刑務所として扱われる(かなり重要な)欠点があるように思われます(このような設定では予想されます)。

確かに、メンテナンスの手間を最小限に抑えながら、既存のコレクションに自分のいくつかのfailregexeを追加したいのは私だけではありません。

対応するグローバルファイルまたは配布提供ファイルに変更を加えずに、サイトローカルファイルまたはホストローカルファイルを使用して、fail2banフィルター定義内のfailregexおよびignoreregexのリストを修正することは可能ですか?もしそうなら、それを行う方法は?

回答:


4

/etc/fail2ban/filter.d/sshd.confファイルの一部を見てみましょう。

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

したがって、ここに追加できると思うかもしれませんafter = sshd.local。そのようなファイルを読み取らせます。このファイルの設定は、このファイルの設定を上書きします。

そしてそれは機能します。ただしfailregex、他のディレクティブへのエントリを単に修正することはできません。交換のみ可能です。

あなたの気持ちは正しいです。これは、間違いなくfail2ban構成ファイル形式の欠点です。開発者に不満を言うだろう。


2

同じ要件があり、それを問題として投稿しました。著者はそれに取り組んでいるようです:https : //github.com/fail2ban/fail2ban/issues/867

マージすると、次のように機能するはずです(この例は、開発者Serg Bresterの好意によるものです)。

# filter test.conf:
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

# filter test.local:
[Definition]
failregex = %(known/failregex)s
            failure test 2 (filter.d/test.local) <HOST>

正規表現は同じ方法で刑務所に追加できます...

# jail.local
[test3known-interp]
filter=test
enabled = true
failregex = %(known/failregex)s
            failure test 3 (jail.local) <HOST>

次の結果について:

$ bin/fail2ban-client -d -c config | grep addfail
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf)]
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local)]
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>']
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.