Bagaimana * menambahkan * aturan dalam definisi filter fail2ban lokal?


10

Saya telah menginstal fail2ban sebagai paket oleh Debian di server di bawah kendali saya. Karena saya memiliki beberapa failregex dari sebelumnya, saya memasukkannya ke dalam file definisi filter lokal sehingga mereka juga akan dipertimbangkan. Oleh karena itu, saya berakhir dengan misalnya /etc/fail2ban/filter.d/sshd.conf dan /etc/fail2ban/filter.d/sshd.local. Ini adalah cara yang disarankan untuk diatur dan tampaknya berfungsi dengan baik untuk apa itu.

Namun, dalam file .local, saya sebenarnya mengganti seluruh daftar failregex dari file .conf. Dokumentasi sepertinya tidak mengindikasikan ada cara lain untuk melakukannya, dan untuk membuatnya berfungsi, saya cukup menyalin file .conf yang disediakan distribusi ke file .local dan membuat beberapa tambahan.

Akan sangat menyenangkan jika saya dapat mengubah daftar, mengambil manfaat dari pekerjaan pengelola hulu dan Debian untuk tetap mengikuti perubahan regex filter entri log yang dikelola distribusi.

Satu-satunya solusi nyata yang dapat saya pikirkan adalah untuk benar-benar membuat dua penjara, satu menggunakan konfigurasi distribusi yang disediakan dan satu menggunakan saya sendiri. Tampaknya ini memiliki kelemahan (cukup signifikan) yang diperlakukan sebagai penjara independen (yang Anda harapkan dengan pengaturan seperti itu).

Tentunya saya tidak bisa menjadi satu-satunya yang ingin hanya menambahkan beberapa failregexes saya sendiri ke koleksi yang sudah ada, dengan minimal kerumitan perawatan.

Apakah mungkin untuk mengubah daftar failregex dan ignoreregex dalam definisi filter fail2ban melalui file situs-lokal atau host-lokal, tanpa membuat perubahan apa pun pada file global atau file yang disediakan distribusi yang sesuai? Jika ya, lalu bagaimana cara melakukannya?

Jawaban:


4

Mari kita lihat bagian dari /etc/fail2ban/filter.d/sshd.conffile tersebut.

[INCLUDES]

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

Jadi Anda mungkin berpikir Anda bisa menambahkan di sini: after = sshd.localdan membuatnya membaca file seperti itu; pengaturan apa pun di dalamnya akan menggantikan yang ada di file ini.

Dan itu berhasil. Kecuali Anda tidak bisa hanya mengubah entri failregexatau arahan lain; Anda hanya bisa menggantinya.

Perasaan Anda benar. Ini jelas merupakan suatu kekurangan dari format file konfigurasi fail2ban. Saya akan mengeluh kepada pengembang.


2

Saya memiliki persyaratan yang sama dan mempostingnya sebagai masalah. Penulis tampaknya sedang mengerjakannya: https://github.com/fail2ban/fail2ban/issues/867 .

Setelah digabungkan, seharusnya berfungsi seperti ini (contoh ini adalah milik pengembang, 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>

dan regex dapat ditambahkan di penjara dengan cara yang sama ...

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

untuk hasil dari:

$ 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>']
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.