Jadi saya melakukan banyak penelitian tentang bagaimana melakukan ini setelah menonton alamat ip yang sama mengenai server web saya satu demi satu. Karena saya menggunakan AWS, saya pikir mungkin ada cara yang mudah dan berfungsi dengan baik dalam dua hari pertama saya menguji 5 server.
Hal pertama yang saya sarankan adalah menonaktifkan SELinux untuk sementara, kami akan mengatasinya pada akhirnya. Saya bukan ahli SELinux tetapi apa yang saya lakukan sejauh ini berhasil.
Persyaratan utama adalah sumber file bersama, saya menggunakan AWS EFS. Setelah drive baru disediakan dan dipasang, saya mengubah logtarget di dalam /etc/fail2ban/fail2ban.conf ke subfolder di drive EFS.
logtarget = /efsmount/fail2ban/server1.log
Lalu saya menulis filter sederhana dan meletakkannya di /etc/fail2ban/filter.d/fail2ban-log.conf
[Definition]
failregex = .* Ban <HOST>
ignoreregex =
Menambahkan filter ke /etc/fail2ban/jail.local
[fail2ban-log]
enabled = true
port = http,https
findtime = 86400 ; 1 day
logpath = /efsmount/fail2ban/server1.log
/efsmount/fail2ban/server2.log
/efsmount/fail2ban/server3.log
/efsmount/fail2ban/server4.log
maxretry = 1
Kemudian restart fail2ban
sudo fail2ban-client reload
Sejauh ini baik! Tidak ada bagian yang menyakitkan adalah SELinux. Setelah saya membiarkan fail2ban berjalan sebentar, saya menjalankan perintah ini yang akan memungkinkan fail2ban melalui filter.
sudo grep fail2ban /var/log/audit/audit.log | sudo audit2allow -M fail2ban-nfs
Audit2allow akan memberitahu Anda untuk menjalankan perintah ini
sudo semodule -i fail2ban-nfs.pp
Saya masih memeriksa log SELinux saya di sana-sini untuk melihat apakah ada lagi penolakan. Jika ada yang punya tip tentang cara mendapatkan SELinux yang jelas dengan metode lain yang akan luar biasa.
sudo cat /var/log/audit/audit.log |grep fail2ban |grep denied
Pada titik ini saya masih mendapatkan kesalahan saat memulai kembali fail2ban. Ada bug saat menggunakan action = action_mwl di jail.local. Setelah sedikit googling saya menemukan ini yang berfungsi sejauh ini. Dari apa yang saya baca karena garis istirahat dalam arahan logat menunjuk ke beberapa file. Saya mencoba dengan koma, spasi, dll tidak ada yang berfungsi dengan action_mwl.
action_mwm = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-matches[name=%(__name__)s, dest="%(destemail)s", chain="%(chain)s"]
action = %(action_mwm)s
Jangan lupa untuk mengaktifkan SELinux kembali!