Apa yang bisa kami bantu?

A. Pendahuluan

Fail2ban adalah aplikasi keamanan berbasis Python yang berfungsi untuk melindungi server Linux dari serangan brute force. Fail2ban bekerja dengan memantau file log berbagai layanan seperti SSH, Apache, Nginx, FTP, dan mail server. Apabila mendeteksi percobaan login yang gagal secara berulang dari alamat IP yang sama, Fail2ban akan secara otomatis memblokir alamat IP tersebut melalui firewall selama periode waktu tertentu.

Pada Ubuntu, Fail2ban telah menyediakan konfigurasi bawaan untuk layanan SSH, sehingga setelah instalasi selesai, perlindungan dasar terhadap serangan brute force umumnya sudah dapat digunakan tanpa konfigurasi tambahan.

Panduan ini menjelaskan cara menginstal Fail2ban, memverifikasi bahwa perlindungan SSH telah aktif, serta melakukan konfigurasi tambahan apabila diperlukan.

 

B. Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Server Ubuntu 20.04, 22.04, atau 24.04
  • Hak akses pengguna dengan sudo atau root
  • Koneksi internet
  • Firewall (UFW, iptables, atau nftables) yang telah dikonfigurasi sesuai kebutuhan

 

C. Langkah 1 – Update Repository

Perbarui daftar paket sebelum melakukan instalasi.

apt update

 

D. Langkah 2 – Install Fail2ban

Install Fail2ban menggunakan APT.

apt install fail2ban -y

Setelah proses instalasi selesai, pastikan Fail2ban telah terpasang dengan baik.

fail2ban-client --version
gambar - fail2ban version

Catatan: Versi yang ditampilkan dapat berbeda tergantung versi Ubuntu yang digunakan.

 

E. Langkah 3 – Menjalankan dan Mengaktifkan Service

Aktifkan service agar berjalan secara otomatis saat server dinyalakan.

systemctl enable fail2ban
systemctl start fail2ban

Kemudian periksa status servicenya.

systemctl status fail2ban

Apabila berhasil, akan muncul informasi seperti berikut:

gambar - status fail2ban

 

F. Langkah 4 – Verifikasi Jail SSH

Secara default, Fail2ban telah menyediakan konfigurasi untuk melindungi layanan SSH. Untuk memastikan jail SSH telah aktif, jalankan:

fail2ban-client status
gambar - fail2ban client status

Untuk melihat informasi lebih rinci mengenai jail SSH:

fail2ban-client status sshd
gambar - fail2ban client status sshd

Apabila jail sshd muncul pada daftar, berarti Fail2ban telah aktif melindungi layanan SSH.

 

G. Langkah 5 – (Opsional) Kustomisasi Konfigurasi

Langkah ini hanya diperlukan apabila Anda ingin mengubah konfigurasi bawaan, seperti:

  • Lama pemblokiran IP (bantime)
  • Maksimal percobaan login (maxretry)
  • Rentang waktu percobaan (findtime)
  • Daftar IP yang tidak diblokir (ignoreip)
  • Mengaktifkan jail tambahan (Apache, Nginx, FTP, Mail Server, dan lainnya)

Sebaiknya jangan mengubah file jail.conf secara langsung, karena perubahan dapat tertimpa saat Fail2ban diperbarui.

Sebagai gantinya, buat file konfigurasi lokal.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Kemudian edit file tersebut.

nano /etc/fail2ban/jail.local

Contoh konfigurasi:

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime = 1h
findtime = 10m
maxretry = 5
gambar - contoh konfigurasi jail

Penjelasan parameter:

  • ignoreip : Daftar IP yang tidak akan diblokir
  • bantime : Lama pemblokiran IP
  • findtime : Rentang waktu perhitungan percobaan login
  • maxretry : Jumlah maksimal percobaan login yang gagal

Simpan perubahan, kemudian restart Fail2ban.

systemctl restart fail2ban

 

H. Langkah 6 – Melihat Log Fail2ban

Untuk memantau aktivitas Fail2ban secara real-time:

tail -f /var/log/fail2ban.log
gambar - log fail2ban

 

I. Langkah 7 – Ban dan Unban IP Secara Manual

Memblokir IP

fail2ban-client set sshd banip 192.168.1.100

Membuka blokir IP

fail2ban-client set sshd unbanip 192.168.1.100

 

J. Mengaktifkan Proteksi Layanan Lain (Opsional)

Selain SSH, Fail2ban juga dapat digunakan untuk melindungi berbagai layanan lainnya.

Perlu Diingat! Jika ingin menambahkan proteksi layanan lain di fail2ban, pastikan layanan atau service tersebut sudah terinstall dan active di server. Jika tidak, fail2ban akan error ketika startup.

Contoh konfigurasi pada jail.local:

Nginx

[nginx-http-auth]
enabled = true
gambar - add nginx jail

Setelah mengaktifkan jail tambahan, restart service:

systemctl restart fail2ban

Cek list jail fail2ban:

fail2ban-client status
gambar - list jail fail2ban

 

K. Rekomendasi Keamanan Tambahan

Untuk meningkatkan keamanan server, disarankan juga untuk menerapkan langkah-langkah berikut:

  • Menggunakan autentikasi SSH Key sebagai pengganti password.
  • Menonaktifkan login root melalui SSH (PermitRootLogin no).
  • Menggunakan password yang kuat dan unik.
  • Mengaktifkan firewall seperti UFW atau nftables.
  • Memperbarui sistem operasi dan paket keamanan secara berkala.
  • Menonaktifkan layanan yang tidak digunakan untuk mengurangi permukaan serangan.

 

L. Kesimpulan

Fail2ban merupakan salah satu solusi yang efektif untuk melindungi server Linux dari serangan brute force. Pada Ubuntu, konfigurasi bawaan Fail2ban telah menyediakan perlindungan untuk layanan SSH, sehingga pengguna dapat langsung memanfaatkan fitur ini setelah instalasi dan aktivasi service. Jika diperlukan, konfigurasi dapat disesuaikan melalui file jail.local untuk mengatur kebijakan pemblokiran atau menambahkan perlindungan pada layanan lain seperti Apache, Nginx, FTP, maupun mail server. Dengan mengombinasikan Fail2ban, firewall, SSH Key, dan pembaruan sistem secara rutin, keamanan server dapat ditingkatkan secara signifikan.

 

M. Penutup

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.