๐ก๏ธ Fail2ban: Menjaga Server Saya dari Serangan Brute Force dan Ancaman Lainnya

โจ Pendahuluan
Ketika saya mulai membuka akses SSH, Samba, dan Gitea ke jaringan lokal dan semi-publik, saya sadar betapa pentingnya melindungi service ini dari serangan brute force. Beberapa kali saya melihat log login yang mencurigakan, terutama di SSH. Dari sinilah saya mengenal dan mulai menggunakan Fail2ban.
Fail2ban menjadi salah satu pertahanan paling ringan dan efektif yang pernah saya pasang di server. Dalam artikel ini, saya akan membagikan pengalaman pribadi saya menggunakan Fail2ban: mulai dari konsep dasar, cara kerja, alasan saya menggunakannya, hingga konfigurasi dan tips penting.
๐ Apa Itu Fail2ban?
Fail2ban adalah sebuah tool open-source yang memantau log file dari berbagai layanan, seperti SSH, Apache, Nginx, vsftpd, Samba, dan lain-lain. Tujuannya? Mendeteksi upaya login yang mencurigakan dan langsung memblokir IP pelaku dengan iptables atau firewall lain.
Fail2ban bekerja dengan cara:
- Memantau log file dari layanan yang diproteksi
- Menemukan pola kesalahan login (gagal login)
- Jika terdeteksi terlalu banyak gagal login, IP tersebut diblokir sementara atau permanen
Dengan begitu, brute-force attacker akan kehilangan akses hanya dalam beberapa detik.
โ Kenapa Fail2ban Penting untuk Server Saya?
Dari pengalaman pribadi, saya melihat banyak percobaan login aneh dari IP luarโterutama ke SSH. Meskipun password saya kuat, tetap saja upaya tersebut mengganggu dan membebani log system.
Beberapa alasan saya menganggap Fail2ban penting:
- ๐ Memblokir brute force otomatis
- ๐ Mengurangi beban log dan sistem
- ๐ง Memberi saya ketenangan karena tahu ada pertahanan otomatis
- ๐ฌ Bisa dikonfigurasi untuk mengirim email notifikasi setiap kali ada IP yang diblok
๐งฉ Layanan yang Saya Lindungi dengan Fail2ban
Saat ini, saya sudah mengaktifkan Fail2ban untuk tiga service utama di salah satu VM saya:
- ๐ SSH (sshd): Perlindungan wajib. Serangan brute force ke SSH sangat umum.
- ๐ Samba (smbd): Saya bagikan file lewat jaringan lokal, dan perlindungan ini penting agar tidak disalahgunakan.
- ๐งโ๐ป Gitea: Source code pribadi saya butuh perlindungan ekstra, dan login form Gitea bisa jadi target brute force.
โ๏ธ Cara Menginstal dan Mengonfigurasi Fail2ban
1. Instalasi
Untuk Debian/Ubuntu:
sudo apt update && sudo apt install fail2ban -y
Untuk CentOS/RHEL:
sudo dnf install epel-release
sudo dnf install fail2ban
2. Konfigurasi Umum
Salin file konfigurasi default:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edit file jail.local
:
sudo nano /etc/fail2ban/jail.local
Contoh konfigurasi:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 3600
findtime = 600
[samba]
enabled = true
port = 445
logpath = /var/log/samba/log.smbd
maxretry = 3
bantime = 3600
findtime = 300
[gitea]
enabled = true
port = http,https
filter = gitea-auth
logpath = /var/lib/gitea/log/gitea.log
maxretry = 5
bantime = 7200
Catatan: Untukgitea
, kamu mungkin perlu membuat custom filter di/etc/fail2ban/filter.d/gitea-auth.conf
3. Restart Service
sudo systemctl restart fail2ban
4. Melihat Status
sudo fail2ban-client status
sudo fail2ban-client status sshd
โ Kelebihan Fail2ban
- Ringan dan tidak memakan resource
- Mudah diinstal dan dikonfigurasi
- Fleksibel: bisa dibuat custom filter untuk hampir semua layanan
- Bisa dikombinasikan dengan notifikasi seperti email, ntfy, dsb
- Open-source dan komunitasnya aktif
โ Kekurangan Fail2ban
- Tidak cocok untuk proteksi DDoS (karena hanya memblok IP, bukan traffic)
- Tergantung pada keakuratan log: jika format log berubah, filter bisa gagal
- Terkadang perlu debug regex filter secara manual
- Tidak ada UI bawaan (semua berbasis CLI dan log)
๐ Kenapa Saya Memilih Fail2ban
Saya mencoba beberapa pendekatan sebelum mantap menggunakan Fail2ban:
- Firewall rules statis: terlalu manual
- Port knocking: ribet kalau digunakan banyak user
- Fail2ban: cukup sekali konfigurasi, dan langsung bekerja otomatis
Fail2ban menang karena:
- Bisa jalan di hampir semua distro Linux
- Bisa digunakan untuk hampir semua service
- Saya bisa lihat history IP mana saja yang pernah diblok
- Kombinasi power dan kesederhanaannya sangat pas buat homelab saya
๐ฏ Kesimpulan
Fail2ban bukan solusi keamanan satu-satunya, tapi untuk saya, ini adalah fondasi pertahanan awal yang sangat efektif. Ia bekerja tanpa ribut, mencegah gangguan dari script kiddies dan brute-force bot yang berkeliaran di internet.
Dengan memblokir IP yang mencurigakan secara otomatis, Fail2ban membuat server saya lebih aman, log lebih bersih, dan saya bisa tidur lebih nyenyak.
๐ Keamanan bukan hanya soal firewall atau enkripsi, tapi juga tentang punya penjaga gerbang otomatis yang bisa bertindak cepat. Dan Fail2ban menjalankan peran itu dengan sangat baik di server saya.