Fail2ban

Apa Itu Fail2Ban?
Fail2Ban adalah alat keamanan berbasis log yang berfungsi untuk memantau dan melindungi server dari serangan brute-force. Jika ada terlalu banyak upaya login yang gagal dalam waktu tertentu, Fail2Ban akan otomatis memblokir alamat IP yang mencurigakan.
Mengapa Fail2Ban Penting?
Serangan brute-force adalah metode umum yang digunakan peretas untuk mencoba berbagai kombinasi username dan password hingga berhasil masuk. Dengan Fail2Ban, kita bisa membatasi jumlah percobaan yang diperbolehkan dan memblokir IP penyerang sebelum mereka berhasil.
1ļøā£ Instalasi Fail2Ban
š¹ Debian/Ubuntu:
sudo apt update && sudo apt install fail2ban -y
š¹ CentOS/RHEL:
sudo dnf install epel-release -y
sudo dnf install fail2ban -y
Setelah terinstal, jalankan dan aktifkan layanan:
sudo systemctl enable --now fail2ban
2ļøā£ Konfigurasi Fail2Ban untuk SSH
Fail2Ban menggunakan file konfigurasi di /etc/fail2ban/jail.conf
. Namun, kita tidak boleh mengedit file ini langsung. Sebagai gantinya, buat file override di /etc/fail2ban/jail.local
:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Kemudian cari bagian [sshd]
dan atur seperti berikut:
[sshd]
enabled = true # Mengaktifkan proteksi SSH
port = 22 # Sesuaikan dengan port SSH yang digunakan
maxretry = 3 # Jumlah maksimal kesalahan sebelum IP diblokir
findtime = 600 # Rentang waktu (detik) untuk mendeteksi gagal login (10 menit)
bantime = 3600 # Lama IP diblokir (1 jam)
Simpan file lalu restart Fail2Ban:
sudo systemctl restart fail2ban
3ļøā£ Penjelasan Parameter Konfigurasi
š enabled = true ā Mengaktifkan proteksi untuk SSH.
š port = 22 ā Port SSH yang akan dipantau (sesuaikan jika SSH menggunakan port lain).
š maxretry = 3 ā Jika ada 3 kesalahan login dalam rentang waktu findtime
, maka IP akan diblokir.
š findtime = 600 ā Jika dalam 600 detik (10 menit) terjadi maxretry
percobaan gagal, maka IP akan diblokir.
š bantime = 3600 ā IP yang terblokir akan tetap diblokir selama 3600 detik (1 jam).
š¹ Format waktu dalam Fail2Ban:
s
ā detik (default jika tanpa satuan).m
ā menit.h
ā jam.d
ā hari.
š Contoh lain:
bantime = 24h # Blokir selama 1 hari
findtime = 30m # Gagal login lebih dari maxretry dalam 30 menit akan diblokir
4ļøā£ Melihat Status dan Log Fail2Ban
Untuk mengecek apakah Fail2Ban berjalan dan melihat daftar IP yang terblokir, gunakan perintah berikut:
sudo fail2ban-client status sshd
Contoh output:
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 10
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 5
`- Banned IP list: 192.168.1.50
Untuk melihat log serangan yang dicegah Fail2Ban:
sudo journalctl -u fail2ban --no-pager | tail -n 20
5ļøā£ Cara Membuka Blokir IP di Fail2Ban
Jika ada IP yang salah terblokir, kita bisa membukanya dengan perintah berikut:
sudo fail2ban-client set sshd unbanip 192.168.1.50
Atau untuk melihat semua IP yang diblokir:
sudo fail2ban-client status sshd
Kesimpulan
Fail2Ban adalah alat yang sangat berguna untuk melindungi server dari serangan brute-force. Dengan konfigurasi yang tepat, kita bisa meningkatkan keamanan server tanpa mengorbankan aksesibilitas. Jika dikombinasikan dengan metode keamanan lainnya seperti SSH Key dan 2FA, maka kemungkinan akun berhasil diretas menjadi sangat kecil.
š¹ Rekomendasi tambahan: ā Gunakan port SSH yang tidak standar (misalnya selain 22). ā Aktifkan autentikasi berbasis SSH Key. ā Gunakan 2FA untuk login SSH. ā Periksa log Fail2Ban secara berkala untuk memastikan tidak ada false positive.
š” Dengan konfigurasi yang tepat, server akan lebih aman dari upaya serangan otomatis dan brute-force! š
Last updated
Was this helpful?