Cek log SSH server kamu deh, kemungkinan besar penuh sama percobaan login gagal dari IP-IP asing yang nyoba nebak password 24 jam nonstop. Solusi klasik tapi tetap ampuh buat masalah ini: Fail2Ban Ubuntu. Tools ini otomatis ngeban IP yang kebanyakan gagal login, tanpa kamu perlu mantengin log manual.
Di artikel ini kita bahas cara install Fail2Ban Ubuntu dari nol, setup jail buat SSH, sampai cara cek dan unban IP.
Apa Bedanya Fail2Ban Ubuntu dengan CrowdSec
Kalau kamu udah baca artikel CrowdSec, mungkin bingung kenapa masih perlu Fail2Ban juga. Bedanya, CrowdSec pakai deteksi berbasis komunitas dan skenario yang lebih kompleks, sedangkan Fail2Ban lebih simpel: dia cuma scan log, hitung berapa kali gagal login, terus ban kalau ngelewatin batas. Fail2Ban itu lebih ringan dan gampang dipahami, cocok buat VPS kecil yang gak butuh fitur seruwet CrowdSec. Beberapa orang malah pakai dua-duanya sekaligus buat lapisan proteksi berbeda.
Buat referensi lengkap, kamu bisa cek repository resmi Fail2Ban di GitHub.
1. Install Fail2Ban Ubuntu
Update dulu package list, terus install. Fail2Ban Ubuntu ini udah masuk repository resmi Ubuntu, jadi kamu gak perlu tambahin PPA atau repository pihak ketiga apapun.
sudo apt update
sudo apt install fail2ban -y
Cek statusnya:
sudo systemctl status fail2ban
2. Bikin File Konfigurasi Lokal
Jangan edit file jail.conf langsung, karena bisa ketimpa pas update. Copy jadi jail.local dulu, karena file ini yang bakal dibaca duluan sama Fail2Ban dan gak akan ketimpa kalau suatu saat kamu update package Fail2Ban ke versi baru.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edit filenya:
sudo nano /etc/fail2ban/jail.local
3. Setup Jail Fail2Ban Ubuntu buat SSH
Cari bagian [sshd], pastikan isinya kayak gini. File jail.local ini isinya banyak section buat berbagai service (nginx, apache, postfix, dll), tapi buat kebutuhan dasar kita fokus dulu ke bagian sshd aja karena itu yang paling sering jadi target serangan brute force.
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600
Penjelasan tiap opsinya: maxretry jumlah percobaan gagal sebelum diban, findtime rentang waktu (detik) buat hitung percobaan gagal itu, dan bantime berapa lama IP diban (dalam detik, 3600 berarti 1 jam). Kalau server kamu ganti port SSH default, ganti juga baris port = ssh jadi nomor port custom kamu.
Simpan, terus restart service-nya:
sudo systemctl restart fail2ban
4. Cek Status dan Daftar IP yang Diban
Lihat jail apa aja yang aktif. Ini command yang bakal sering kamu pakai buat monitoring sehari-hari, biar tau Fail2Ban Ubuntu kamu masih jalan normal dan jail mana aja yang lagi aktif proteksinya.
sudo fail2ban-client status
Cek detail jail SSH, termasuk IP yang lagi diban:
sudo fail2ban-client status sshd
5. Unban IP Manual
Kalau IP kamu sendiri atau tim ke-ban gara-gara salah masukin password berkali-kali, unban manual pakai command ini. Kejadian ini lumayan sering dialamin developer yang lagi remote kerja dan salah ketik password beberapa kali berturut-turut karena buru-buru.
sudo fail2ban-client set sshd unbanip ALAMAT_IP
Biar gak keulang, tambahin IP kamu ke whitelist di jail.local, cari baris ignoreip dan tambahin IP kamu di situ, dipisah spasi:
ignoreip = 127.0.0.1/8 ::1 IP_KAMU_DI_SINI
Bonus: Ban Makin Lama Buat Pelanggar Berulang
Default-nya, IP yang diban Fail2Ban Ubuntu bakal bebas lagi setelah bantime habis, terus bisa nyoba brute force lagi dari awal. Buat nanganin IP yang emang niat jahat dan terus-terusan nyoba, aktifkan jail recidive yang bakal ngeban lebih lama lagi buat IP yang udah pernah keban sebelumnya. Buka file jail.local, cari bagian [recidive], terus set:
[recidive]
enabled = true
bantime = 604800
findtime = 86400
maxretry = 3
Konfigurasi ini bakal ngeban IP selama 7 hari (604800 detik) kalau dalam 1 hari terakhir IP itu udah kena ban minimal 3 kali dari jail manapun. Efektif banget buat nyaring bot-bot yang emang keras kepala.
Kendala yang Sering Muncul
- Service gagal start setelah edit jail.local
Biasanya ada typo syntax. Cek dulu dengansudo fail2ban-client -dbuat lihat error spesifiknya sebelum restart. - Fail2Ban jalan tapi gak ngeban IP apapun
Cek log fail2ban di/var/log/fail2ban.log, pastikan filter sshd berhasil baca log auth di/var/auth.log. Kadang path log beda tergantung distro. - Kena lock out sendiri karena IP dinamis ganti-ganti
Kalau ISP kamu sering ganti IP, pertimbangkan naikin maxretry atau pakai autentikasi SSH key (biar gak pernah salah password lagi). - Fail2Ban gak jalan otomatis setelah reboot
Enable service-nya biar auto-start:sudo systemctl enable fail2ban.
Penutup
Nah, segitu aja cara install Fail2Ban Ubuntu dan setup jail dasar buat SSH. Tools ini ringan tapi efektif banget buat nyaring percobaan brute force yang gak ada abisnya. Kombinasiin sama SSH key login biar server kamu makin susah ditembus.
Satu tips terakhir: sesekali cek sudo fail2ban-client status sshd buat liat statistik total percobaan gagal yang berhasil diblokir. Kalau angkanya tinggi banget dalam waktu singkat, itu tanda server kamu emang jadi target aktif bot scanning, dan worth dipertimbangkan buat nambah lapisan proteksi lain kayak ganti port SSH default atau pakai SSH key sepenuhnya.
Kalau ada yang error atau nyangkut, drop komentar aja bro.























