Fail2Ban adalah sebuah perangkat lunak open-source yang dirancang untuk mencegah serangan brute-force dan serangan otomatis lainnya terhadap layanan server, seperti SSH, FTP, HTTP, dan lainnya. Fail2Ban bekerja dengan cara memantau log sistem (seperti /var/log/auth.log atau /var/log/secure) untuk mendeteksi pola-pola mencurigakan — misalnya, banyak upaya login gagal dari satu alamat IP dalam waktu singkat.
Ketika pola serangan terdeteksi, Fail2Ban secara otomatis akan memblokir IP tersebut melalui firewall (biasanya iptables, nftables, atau firewalld) untuk jangka waktu tertentu. Setelah waktu blokir berakhir, IP tersebut biasanya akan dibuka kembali kecuali jika terdeteksi lagi.
Cara Instalasi :
# apt update -y && apt install fail2ban -y
# systemctl status fail2ban.service
Pengaturan
# /etc/fail2ban/jail.conf
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 300
bantime = 3600
ignoreip = 127.0.0.1
Berikut adalah penjelasan masing-masing parameter:
“enabled = true” : Mengaktifkan perlindungan pada layanan SSH.
“port = ssh” : Menentukan port yang dipantau, misalnya port SSH default (22).
“filter = sshd” : Menunjukkan jenis log yang dipantau, dalam hal ini SSH.
“logpath = /var/log/auth.log” : Lokasi file log yang dipantau untuk mendeteksi aktivitas mencurigakan.
“maxretry = 3” : Jumlah maksimum percobaan login gagal sebelum IP diblokir.
“findtime = 300” : Jangka waktu (dalam detik) untuk menghitung jumlah percobaan login gagal.
“bantime = 3600” : Durasi (dalam detik) IP diblokir setelah mencapai batas maxretry.
“ignoreip = 127.0.0.1” : Daftar IP yang dikecualikan dari pemblokiran, seperti 127.0.0.1 yang merupakan alamat lokal (server itu sendiri).
# systemctl enable --now fail2ban
# systemctl status fail2ban.service
Memblokir Secara Manual di Fail2ban
# fail2ban-client set sshd banip (isi dengan IP address)
# fail2ban-client set sshd unbanip (isi dengan IP address)
Melihat Daftar IP yang Terblokir di Fail2ban
# fail2ban-client status sshd
