Fungsi dan Cara Kerja Fail2Ban: Tameng Untuk Server

Bayangin server lo kayak kos-kosan di jalan rame: tiap menit ada orang coba buka pintu pakai kunci palsu.

Daripada lo duduk 24/7 ngintip CCTV, Fail2Ban datang sebagai satpam otomatis yang langsung kunci gerbang begitu ada usaha mencurigakan.

Ringan, open-source, dan bisa di-install di Ubuntu, CentOS, bahkan Raspberry Pi.

Intinya: pantau log, hitung gagal, blokir IP, selesai.

Apa sih Fail2Ban?

Fail2Ban adalah daemon Python yang jalan di belakang layar, tugasnya cuma satu: baca log, temukan pola brute-force, lalu suruh firewall (iptables, nftables, atau firewalld) buang IP yang iseng.

Konsepnya mirip alarm rumah yang bunyi kalau ada gerak mencurigakan, tapi versi Linux.

Komponen Utama

1. filter.d/

File regex yang nentuin baris log mana yang dianggap serangan.

Contoh `sshd.conf` bakal tangkap log “Failed password for root from 1.2.3.4”.

Mau bikin custom? Edit aja regex-nya.

2. jail.conf / jail.local

Konfigurasi “penjara” tempat lo atur:
– `maxretry` : berapa kali gagal sebelum diblokir (default 5).
– `bantime` : durasi blokir, bisa detik, menit, atau jam (misalnya 1h).
– `findtime` : jendela waktu di mana kegagalan dihitung.

Contoh jail buat SSH:
“`
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
“`

3. action.d/

Skrip yang dijalankan saat IP diblokir.

Default cuma drop paket, tapi lo bisa modif supaya kirim notif ke Slack atau Telegram.

Alur Kerja 5 Langkah

1. Monitor log sesuai `logpath`.
2. Cocokkan regex di filter → hitung kegagalan.
3. Kalau jumlah gagal ≥ `maxretry` dalam `findtime`, IP masuk daftar hitam.
4. Jalankan action (iptables -A fail2ban-SSH -s IP -j DROP).
5. Setelah `bantime` habis, IP otomatis di-unban atau tetap diblokir permanen (opsional).

Use Case Populer

– SSH brute-force: Rata-rata server baru di cloud kena 100+ percobaan login per hari. Fail2Ban langsung cut loss.
– WordPress login: Tambahkan jail buat `/var/log/nginx/access.log` dengan regex `POST /wp-login.php.* 200`.
– Mail server: Cegak spam submission dengan jail Postfix/SASL.

Tips Biar Makin Kekar

– Whitelist IP kantor di `ignoreip = 103.21.x.x`.
– Naikkan `maxretry` untuk layanan internal supaya tim DevOps nggak ketiban ban gara-gara salah ketik.
– Integrasi dengan Cloudflare: Fail2Ban push IP ke CF firewall, jadi blokirnya global.
– Rotate log pake logrotate biar file log nggak gendut.


Fail2Ban bukan antivirus super canggih, tapi tameng pertama yang murah meriah dan efektif.

Dengan konfigurasi 10 menit, lo sudah memangkas 90 % percobaan brute-force.

Ingat: fail2ban cuma layer pertama, tetap patch sistem dan pake 2FA.

Ngopi sambil konfig Fail2Ban? Yuk, gas bareng ShinoBee ID !