Panduan Lengkap Fail2Ban: Cara Melindungi VPS Linux dari Serangan Brute-Force SSH

Pengantar

Sebagai pengguna VPS Linux, keamanan server adalah hal utama yang tidak boleh diabaikan. Salah satu ancaman paling umum yang sering menyerang server adalah brute-force attack serangan dengan cara mencoba login berulang kali menggunakan kombinasi username dan password secara acak.

Biasanya, serangan ini menargetkan port SSH (22) karena SSH adalah jalur utama untuk mengakses VPS secara remote. Jika tidak dilindungi dengan benar, brute-force bisa menyebabkan server Anda:

  • Mengalami beban CPU tinggi karena banyaknya percobaan login.
  • Terbuka risiko akses tidak sah jika password terlalu lemah.
  • Mengalami down atau lag akibat traffic serangan otomatis (botnet).

Untuk mencegah hal tersebut, salah satu solusi paling efektif dan ringan adalah menggunakan Fail2Ban.

Apa Itu Fail2Ban dan Bagaimana Cara Kerjanya?

Fail2Ban adalah tool keamanan berbasis Python yang berfungsi untuk mendeteksi aktivitas login mencurigakan di log sistem, lalu memblokir IP penyerang secara otomatis menggunakan firewall (iptables atau firewalld).

Fail2Ban bekerja dengan cara:

  • Memantau file log sistem seperti /var/log/auth.log atau /var/log/secure.
  • Mendeteksi pola kesalahan login berulang (misalnya 3 kali gagal).
  • Menambahkan IP sumber serangan ke daftar blokir firewall untuk waktu tertentu

Dengan mekanisme ini, Fail2Ban secara otomatis “mengunci” penyerang sebelum mereka bisa menebak password Anda.

Keuntungan Menggunakan Fail2Ban di VPS

Menginstal Fail2Ban memberikan banyak manfaat penting:

  • Perlindungan otomatis dari brute-force SSH dan layanan lain (FTP, Postfix, Dovecot, dll).
  • Konfigurasi fleksibel : bisa mengatur berapa kali gagal login sebelum diblokir.
  • Ringan dan efisien : tidak membebani sumber daya server.
  • Meningkatkan stabilitas server : karena menurunkan beban akibat serangan login.
  • Memudahkan monitoring keamanan dengan laporan dan log yang jelas.

Langkah-Langkah Instalasi Fail2Ban di Berbagai Distro Linux

  1. Ubuntu / Debian
    sudo apt update && sudo apt install fail2ban -y
    
  2. CentOS / RHEL
    sudo yum install epel-release -y
    sudo yum install fail2ban -y
    
    Setelah instalasi selesai, layanan Fail2Ban sudah otomatis tersedia di sistem

Konfigurasi Fail2Ban

Langkah berikutnya adalah mengatur konfigurasi agar Fail2Ban melindungi layanan SSH.

  1. Salin File Konfigurasi Default
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
    File jail.local digunakan agar perubahan tidak tertimpa saat sistem update.
  2. Aktifkan Proteksi SSH
    Edit file:
    sudo nano /etc/fail2ban/jail.local
    

    Tambahkan atau pastikan bagian berikut sudah diaktifkan:

    [sshd]
    enabled  = true
    port     = ssh
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 3
    bantime  = 3600
    
    Penjelasan Parameter:
    • enabled : Mengaktifkan perlindungan untuk layanan SSH.
    • port : Port yang digunakan SSH (default: 22).
    • filter : Jenis filter log yang digunakan (sshd).
    • logpath : Lokasi file log yang dipantau (tergantung distro).
    • maxretry : Jumlah maksimal percobaan login gagal sebelum IP diblokir.
    • bantime : Lama waktu IP diblokir dalam detik (3600 detik = 1 jam).
    Anda dapat menyesuaikan maxretry dan bantime sesuai kebutuhan keamanan server.

Menjalankan dan Memeriksa Status Fail2Ban

Setelah konfigurasi selesai, aktifkan dan jalankan layanan:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Untuk memeriksa status:

sudo fail2ban-client status sshd

Contoh hasil:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed: 8
|  `- File list: /var/log/auth.log
`- Actions
   |- Currently banned: 2
   |- Total banned: 5
   `- Banned IP list: 103.45.67.89 203.0.113.24

Penjelasan:

  • Currently banned : Jumlah IP yang sedang diblokir.
  • Banned IP list : Daftar alamat IP yang gagal login berulang kali.

Melihat dan Mengelola IP yang Diblokir

  1. Melihat Daftar IP Diblokir
    sudo fail2ban-client status sshd
    
  2. Membuka Blokir IP Secara Manual
    sudo fail2ban-client unban 
    
    Gantilah dengan alamat IP yang ingin Anda buka blokirnya.
  3. Mencegah IP sendiri terblockir
    Edit file /etc/fail2ban/jail.local dan tambahkan di bagian atas (sebelum [sshd]):
    [DEFAULT]
    ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 103.55.xx.xx
    
    Ganti 103.55.xx.xx dengan IP publik kamu (bisa dicek di https://ifconfig.me)
    Tambahkan beberapa IP jika kamu login dari beberapa lokasi.
    Fail2Ban tidak akan memblokir IP yang ada di daftar ignoreip.

Kesimpulan

Menjaga keamanan VPS adalah proses berkelanjutan yang membutuhkan perhatian rutin, bukan hanya sekadar memasang firewall. Dengan memantau file log SSH seperti /var/log/auth.log atau /var/log/secure, Anda dapat mendeteksi percobaan login mencurigakan, mengenali IP penyerang, dan mencegah serangan brute-force sejak dini. Langkah sederhana seperti memeriksa log login gagal, mengaktifkan Fail2Ban, serta menggunakan SSH Key dapat secara signifikan meningkatkan perlindungan server Anda. Dengan kebiasaan memantau log dan menerapkan sistem keamanan, VPS akan tetap aman, stabil, dan memiliki performa optimal untuk mendukung kebutuhan bisnis dan layanan anda.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466