Salah satu cara melindungi server agar lebih aman dari serangan brute force adalah dengan menggunakan fail2ban.
Secara catatan log di server, ada ribuan bot yang melakukan serangan brute force ke server ini dan angkanya terus bertambah.
Ibarat kamu memiliki sebuah rumah di pinggir jalan raya yang ramai, setiap detik ada aja orang asing yang berusaha membuka pintu rumah kamu.
Ada orang asing yang cuma mengamati dari kejauhan saja, ada juga yang berusaha ketok-ketok pintu masuk atau istilahnya scanning.
Ada juga orang yang berusaha untuk menjebol pintu rumah kamu agar bisa masuk dan menguasai rumah beserta isi di dalamnya.
Serangan brute force bisa menghabiskan sumber daya server dan bandwidth secara cuma-cuma. Di sini, saya akan bahas bagaimana cara menggunakan Fail2ban di server.
Sebelum itu, kita kenalan terlebih dahulu terkait dengan serangan brute force itu seperti apa dan bagaimana cara kerjanya.
Daftar Isi
Apa Itu Serangan Brute Force?
Serangan brute force adalah upaya menebak kredensial (username/password, token, dll.) secara berulang-ulang sampai menemukan kombinasi yang benar.
Peretas menggunakan skrip otomatis (bot) yang bisa mencoba ratusan hingga ribuan kombinasi kata sandi dalam hitungan menit.
Pada kasus saya pribadi, saya menemukan pada log server ini mencatat ada ribuan percobaan login yang gagal dari alamat IP yang berbeda-beda.
Analoginya seperti ada seorang pencuri yang mencoba setiap kunci di pintu rumah kamu, ia berusaha terus menerus sampai menemukan satu yang pas.
Celakanya serangan ini bukan dilakukan manual seperti pencuri tadi, tapi sudah dilakukan oleh bot, yang di mana bot tidak mengenal lelah!
Alhasil, server akan terus memproses permintaan login palsu, yang mengakibatkan performa server menurun drastis atau dalam kasus yang lebih parah, akun root berhasil dibajak.
Mengapa Server Linux Menjadi Target Favorit Hacker?
Sebagian besar infrastruktur web di dunia saat ini berjalan menggunakan OS Linux. Bukan berarti server yang menggunakan sistem operasi Linux dianggap rentan atau tidak aman.
Banyaknya pengguna server Linux, masih menggunakan konfigurasi standar (default) tanpa pengamanan tambahan atau istilahnya hardening.
Peretas menjadi punya pola tersendiri dalam melakukan serangan ke server tersebut, misalnya saja port SSH yang masih standar, menggunakan kata sandi yang lemah, dsb.
Inilah alasan mengapa kamu wajib mempelajari cara menggunakan Fail2ban untuk mengamankan server yang kamu kelola saat ini.
Apa Itu Fail2ban?
Fail2ban adalah tool open source berbasis Python yang memonitor file log dan kemudian memerintahkan sistem keamanan server (seperti iptables atau firewalld) untuk memblokir IP tersebut selama waktu yang ditentukan, ketika pola tertentu muncul berulang kali.
Saya pribadi merasa lebih tenang sejak mengimplementasikan Fail2ban. Saya tidak perlu lagi memantau log secara manual.
Fail2ban bekerja sebagai satpam digital yang sangat disiplin. Begitu ada IP nakal yang melanggar aturan, seperti login salah berkali-kali, akses mereka langsung diblokir.
Cara Install Fail2ban di Berbagai Distro Linux
Di Ubuntu atau Debian, cara menggunakan Fail2ban untuk menangkal serangan brute force ke server bisa dengan cara menjalankan perintah berikut :
sudo apt update
sudo apt install fail2ban -y
Setelah itu, pastikan service berjalan:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban
Bagi kamu yang menggunakan CentOS atau RHEL, pastikan repositori EPEL sudah terpasang. Jalankan perintah ini jika belum:
sudo yum install epel-release -y # jika belum
sudo yum install fail2ban -y #untuk menginstal fail2ban
Di distro linux yang lain, pada prinsipnya sama kamu tinggal install package fail2ban, lalu aktifkan service-nya.
Ini adalah pondasi awal cara menggunakan Fail2ban untuk mengurangi serangan brute force ke server.
Pengaturan Fail2ban Di File Jail.conf atau Jail.local?
Jadi ada dua tempat atau file untuk mengatur Fail2ban yaitu di jail.conf dan jail.local. File default bawaan paket itu ada di jail.conf.
Setiap kustomisasi di file jail.conf ini akan ditimpa/dihapus saat ada update aplikasi. Kalau kamu ingin melakukan kustomisasi, lakukan di file jail.local.
Caranya melakukan kustomisasi pengaturan pada Fail2ban dengan cara melakukan perintah berikut ini:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Lalu tinggal kamu edit jail.local sesuai kebutuhan, agar setiap ada update paket pengaturan yang sudah kamu lakukan tetap tersimpan dan tidak terhapus.
Cara Melindungi SSH Dengan Fail2ban
SSH adalah target utama serangan brute force. Jadi, cara menggunakan Fail2ban untuk mengurangi serangan brute force ke server biasanya dimulai dari mengamankan SSH.
Buka file konfigurasi jail.local tersebut dengan editor teks seperti nano, cari bagian [sshd]. Pastikan parameter enabled = true sudah ada di sana.
Tambahkan jail SSH pada file jail.local (jika belum ada):
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
Di CentOS/RHEL, logpath biasanya:
logpath = /var/log/secure
Parameter Penting Di Pengaturan Fail2ban
Ada beberapa parameter penting di atas yang perlu kamu ketahui, diantaranya adalah:
- bantime: Durasi berapa lama IP akan diblokir. Saya biasanya menyetelnya ke
1h(1 jam) untuk pelanggaran pertama. - findtime: Rentang waktu pengecekan kegagalan. Misalnya, jika disetel 10 menit, Fail2ban akan menghitung berapa kali gagal login dalam 10 menit terakhir.
- maxretry: Jumlah maksimal kegagalan yang ditoleransi. Angka 3 atau 5 kali percobaan biasanya sudah cukup ideal untuk keamanan dan kenyamanan pengguna yang sah.
- ignoreip: daftar IP/internal yang tidak akan diblokir (misalnya IP kantor atau VPN).
Setelah proses konfigurasi di atas, tahap berikutnya yaitu lakukan restart Fail2ban.
sudo systemctl restart fail2ban
Cek status apakah Fail2ban sudah berjalan dengan baik atau ada eror dengan perintah berikut:
sudo fail2ban-client status sshd
Dengan beberapa langkah di atas, kamu sudah mempraktikkan cara menggunakan Fail2ban untuk mengurangi serangan brute force ke server, khususnya melidungi SSH.
Kesimpulan
Fail2ban bukan satu-satunya solusi untuk mengamankan server, namun menjadi komponen penting dalam strategi membuat keamanan server yang berlapis.
Jika kamu baru mulai meningkatkan keamanan server saat ini, kamu bisa langsung mempraktikan cara menggunakan Fail2ban di atas.
FAQ (Pertanyaan yang Sering Diajukan)
Apakah Fail2ban mendukung IPv6?
Ya, Fail2ban mendukung IPv6, terutama mulai dari versi 0.10 ke atas, yang memungkinkan pemblokiran alamat IPv6 secara efektif.
Apakah Fail2ban bisa membuat server saya menjadi lambat?
Secara umum, tidak. Fail2ban berjalan sangat ringan. Justru, dengan memblokir serangan brute force, kamu bisa menghemat beban resource server yang terbuang akibat memproses percobaan login gagal yang masif.
Apakah Fail2ban cukup untuk mengamankan server saya dari semua serangan brute force?
Tidak sepenuhnya. Cara menggunakan Fail2ban untuk mengurangi serangan brute force ke server memang efektif untuk pola serangan repetitif dari satu IP.
Namun tidak cukup menghadapi brute force terdistribusi atau serangan aplikasi yang kompleks. Kamu tetap perlu kombinasi dengan SSH key, WAF, VPN, dan praktik keamanan yang lain.
Bagaimana jika saya salah memasukkan password dan terblokir sendiri?
Kamu bisa masuk ke server menggunakan alamat IP lain atau lewat konsol penyedia VPS kamu, lalu jalankan perintah unbanip dengan foramt sebagai berikut “sudo fail2ban-client set sshd unbanip <IP_address>“.
Untuk mencegah terblokir di server sendiri, masukkan IP rumah atau IP VPN kantor kamu ke dalam ignoreip di konfigurasi jail.local seperti yang di contohkan di atas.








