Fail2ban adalah sebuah alat yang dapat melakukan mitigasi terhadap serangan brute force dengan membuat aturan dan merubah konfigurasi firewall secara otomatis untuk melakukan blok terhadap alamat IP tertentu setelah IP tersebut melakukan percobaan gagal login (yang kemungkinan serangan) beberapa kali dalam rentang waktu yang ditentukan.
Pada tulisan ini, kita akan melakukan install fail2ban pada rocky linux 9 dan akan kita gunakan untuk melakukan monitoring terhadap log dari webserver nginx.
Instalasi dan Konfigurasi Fail2ban
Sebelum melakukan instalasi fail2ban, kita harus melakukan instalasi paket EPEL, semacam paket ekstra untuk RHEL dan turunannya.
sudo dnf install epel-release -y
Selanjutnya bisa bisa kita lakukan instalasi dari fail2ban.
sudo dnf install fail2ban -y
Setelah proses instalasi selesai, bisa kita cek status dari fail2ban, bawaannya fail2ban tidak akan langsung berjalan, bisa kita cek dengan perintah
systemctl status fail2ban.service
File konfigurasi utama dari fail2ban ada di folder /etc/fail2ban dan konfigurasi utama nya ada di file jail.conf.
cd /etc/fail2ban<br />head -20 jail.conf
Sebaiknya kita melakukan duplikasi konfigurasi fail.conf menjadi fail.local, kita akan melakukan perubahan konfigurasi pada konfigurasi fail.local.
sudo cp jail.conf jail.local
Kita gunakan edit nano untuk melakukan perubahan konfigurasi.
sudo nano jail.local
Konfigurasi Fail2ban untuk memonitor Nginx Logs
Kita menggunakan webserver Nginx, maka kita edit bagian [nginx-http-auth] dengan konfigurasi dibawah ini.
[nginx-http-auth]
enabled = true
port = http,https
logpath = %(nginx_error_log)s
Aktifasi Fail2ban
Selanjutnya kita aktifkan fail2ban saat server aktif atau restart.
sudo systemctl enable fail2ban
Untuk mengaktifkan fail2ban secara langsung, bisa kita gunakan perintah start pada systemctl.
sudo systemctl start fail2ban
Untuk melihat status dari fail2ban gunakan perintah status.
sudo systemctl status fail2ban
Melihat status Fail2ban
Kita bisa melihat rangkuman dari fail2ban dengan perintah fail2ban-client
.
sudo fail2ban-client status
Gunakan opsi nama filter untuk melihat spesific layanan,
sudo fail2ban-client status nginx-http-auth
Menghapus banned alamat IP
sudo fail2ban-client set nginx-http-auth unbanip 108.172.85.62