1. Apa itu Fail2Ban?
Fail2Ban adalah sistem keamanan yang memantau log server dan secara otomatis memblokir IP yang melakukan percobaan login gagal berulang kali (brute force attack), terutama pada SSH.
2. Install Fail2Ban di Ubuntu
Update sistem dan install paket:
sudo apt update
sudo apt install fail2ban -y3. Backup konfigurasi default
Jangan edit file asli, buat salinan:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local4. Konfigurasi dasar yang aman
Edit file:
sudo nano /etc/fail2ban/jail.localIsi konfigurasi minimal aman:
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 172.16.x.0/24 10.10.x.0/30
bantime = 10m
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
backend = systemdPenjelasan:
ignoreip→ IP yang tidak boleh diblok (penting!)maxretry→ batas percobaan login gagalbantime→ lama blokir IP[sshd]→ proteksi SSH
5. Jalankan Fail2Ban
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban6. Cek status service
sudo systemctl status fail2banJika berhasil:
Active: active (running)7. Cek jail SSH aktif
sudo fail2ban-client status sshdContoh output:
Currently failed: 0
Currently banned: 0
Total failed: 08. Cara testing Fail2Ban
Dari komputer lain, lakukan login SSH dan masukkan password salah beberapa kali:
ssh root@IP_SERVERSetelah 5 kali gagal (default maxretry), IP akan diblok otomatis.
9. Cek IP yang diblok
sudo fail2ban-client status sshdJika ada ban:
Banned IP list: xxx.xxx.xxx.xxx10. Cara Unban IP
Jika ingin membuka blokir IP:
sudo fail2ban-client set sshd unbanip IP_KAMUContoh:
sudo fail2ban-client set sshd unbanip 172.16.4.10cek apakah sudah berhasil
fail2ban-client status sshdUnban semua IP di jail SSH (reset ban)
Kalau mau bersihkan semua ban:
fail2ban-client set sshd unban --all(kalau versi mendukung, jika tidak, unban satu per satu)
Tips penting
- Pastikan kamu unban dari server yang benar
- Jangan unban IP attacker tanpa alasan
- Kalau sering salah ban, cek konfigurasi:
maxretryignoreip
11. Cek log Fail2Ban
sudo tail -f /var/log/fail2ban.logatau:
journalctl -u fail2ban -f12. Troubleshooting cepat
Jika Fail2Ban tidak jalan:
systemctl status fail2banRestart paksa:
sudo systemctl restart fail2banCek error detail:
journalctl -u fail2ban --no-pager -n 50Kesimpulan
Dengan konfigurasi ini:
- SSH server lebih aman dari brute force
- IP penyerang otomatis diblok
- Bisa unban kapan saja
- Tidak mengganggu sistem utama
Rekomendasi lanjutan
Untuk server production (termasuk Wazuh):
- turunkan
maxretry = 3 - naikkan
bantime = 1h - aktifkan alert ke SIEM (Wazuh)