Dalam dunia digital yang semakin rentan terhadap ancaman siber, menjaga keamanan sistem menjadi prioritas utama. Serangan brute force, salah satu metode serangan yang paling umum, mencoba mengakses sistem dengan mencoba berbagai kombinasi kata sandi secara berulang. Untuk menangkal ancaman ini, Fail2Ban hadir sebagai solusi yang efektif.
Fail2Ban merupakan sebuah utilitas berbasis Python yang dirancang untuk melindungi sistem dari serangan jaringan, khususnya serangan brute force. Cara kerjanya sederhana namun efektif: Fail2Ban memantau log sistem dan mencari pola aktivitas yang mencurigakan. Jika pola tersebut sesuai dengan aturan yang telah ditentukan dalam file konfigurasi, Fail2Ban akan mengambil tindakan, seperti memblokir alamat IP penyerang dan mencatat kejadian tersebut.
Artikel ini akan memandu Anda melalui proses instalasi dan konfigurasi Fail2Ban di Ubuntu 24.04 untuk mencegah serangan brute force terhadap layanan SSH.
Langkah 1: Instalasi Fail2Ban
Sebelum memulai, pastikan daftar paket dan database paket Anda sudah diperbarui:
sudo apt update && sudo apt upgrade -y
Selanjutnya, instal Fail2Ban menggunakan manajer paket APT:
sudo apt install fail2ban
Setelah instalasi selesai, Anda dapat memverifikasi instalasi dengan memeriksa versi Fail2Ban:
fail2ban-server --version
Versi Fail2Ban yang Anda gunakan akan berguna jika Anda mengalami masalah dalam mengikuti tutorial ini. Jangan ragu untuk menyebutkan versi tersebut di kolom komentar.
Langkah 2: Konfigurasi Fail2Ban
Konfigurasi Fail2Ban disimpan di direktori "/etc/fail2ban". Beberapa file konfigurasi dikelompokkan dalam direktori "action.d", "fail2ban.d", "filter.d", dan "jail.d", sementara file konfigurasi penting seperti "fail2ban.conf", "jail.conf", dan "jail.local" berada di direktori utama.
Dalam tutorial ini, kita akan fokus pada modifikasi file "jail.conf" untuk mengkonfigurasi Fail2Ban agar dapat mencegah serangan brute force. File ini berisi konfigurasi default untuk berbagai layanan, termasuk SSH.
Untuk menghindari modifikasi langsung pada file "jail.conf", kita akan membuat salinan file tersebut dengan nama "jail.local" di direktori yang sama:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Selanjutnya, kita akan memodifikasi file konfigurasi ini sesuai kebutuhan menggunakan editor teks pilihan Anda (dalam tutorial ini, kami menggunakan Nano):
sudo nano /etc/fail2ban/jail.local
Setelah file terbuka, cari direktori [SSH], yang biasanya dikomentari dengan tanda "#" di depannya. Hapus tanda "#" dan tambahkan konfigurasi berikut di bawahnya:
[ssh]
enabled = true
port = ssh
filter = sshd
maxretry = 3
findtime = 5m
bantime = 24h
Catatan: Pastikan Anda menambahkan konfigurasi di bawah direktori [SSH] dan bukan [SSHD]. Jika Anda menemukan direktori [SSHD], ganti namanya menjadi [SSH].
Berikut penjelasan singkat tentang konfigurasi yang telah ditambahkan:
- enabled = true: Menunjukkan bahwa konfigurasi ini aktif.
- port = ssh dan filter = sshd: Menentukan nama layanan yang akan diawasi.
- maxretry = 3: Menentukan jumlah maksimum percobaan login gagal yang diizinkan sebelum memblokir alamat IP (dalam contoh ini, 3 kali percobaan gagal).
- findtime = 5m: Menentukan durasi waktu di mana kondisi harus terpenuhi (dalam contoh ini, pengguna harus gagal login tiga kali dalam waktu lima menit agar tindakan diambil).
- bantime = 24h: Menentukan berapa lama alamat IP diblokir (dalam contoh ini, 24 jam).
Nilai konfigurasi ini bukanlah standar industri yang harus Anda ikuti secara membuta. Jangan ragu untuk memodifikasinya sesuai kebutuhan atau persyaratan Anda.
Setelah Anda selesai mengedit file konfigurasi, tampilannya akan seperti ini:
[Gambar Konfigurasi Fail2Ban]
Simpan dan tutup file. Jika Anda menggunakan editor Nano, tekan Ctrl+X, kemudian Y, lalu Enter untuk menyimpan dan keluar.
Langkah 3: Restart Layanan
Setelah membuat perubahan pada konfigurasi, pastikan layanan SSH berjalan dan diaktifkan agar layanan tersebut dapat diluncurkan secara otomatis saat sistem di-boot. Untuk melakukan hal ini, jalankan dua perintah berikut:
sudo systemctl restart ssh
sudo systemctl enable ssh
Selanjutnya, restart dan aktifkan layanan Fail2Ban dengan perintah berikut:
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
Sekarang Anda siap untuk menguji apakah percobaan brute force melalui SSH akan diblokir.
Langkah 4: Uji Coba Serangan Brute Force Melalui SSH
Untuk menguji apakah beberapa percobaan login SSH (atau serangan brute force) diblokir, gunakan alamat IP lokal Anda (dapat ditemukan dengan perintah ip addr show
) dan dari jaringan lokal Anda (atau sistem yang sama, yang juga baik), cobalah untuk login beberapa kali ke sistem dengan Fail2Ban yang telah dikonfigurasi hingga batas percobaan tercapai.
Selama atau setelah percobaan login gagal, Anda dapat memantau log Fail2Ban untuk melihat apakah alamat IP telah diblokir.
sudo tail -f /var/log/fail2ban.log
Setelah alamat IP diblokir di sisi pengguna, pesan berikut akan muncul ketika mereka mencoba login ke sistem melalui SSH.
[Gambar Sistem Diblokir oleh Fail2Ban]
Untuk membuka blokir alamat IP pengguna dari Fail2Ban, tentukan alamat IP mereka dengan perintah berikut:
sudo fail2ban-client set sshd unbanip 192.168.0.101
Kesimpulan
Dalam artikel ini, Anda telah mempelajari cara menginstal dan mengkonfigurasi Fail2Ban untuk memblokir alamat IP yang mencoba melakukan serangan brute force ke sistem melalui SSH. Jika Anda memiliki pertanyaan tentang topik ini, jangan ragu untuk menuliskannya di kolom komentar.
Semoga artikel ini bermanfaat dan membantu Anda dalam meningkatkan keamanan sistem Anda.