Skip to main content

Panduan Instalasi Fail2Ban


  1. Sebelum melakukan instalasi pastikan daftar package telah diperbaharui dari repositori, lalu lakukan instalasi fail2ban
    sudo apt update
    sudo apt install fail2ban -y
  2. Untuk melakukan konfigurasi secara aman, buatlah salinan file konfigurasi utama yang nantinya akan digunakan
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  3. Memulai konfigurasi pada file utama hasil dari salinan sebelumnya
    sudo nano /etc/fail2ban/jail.local
  4. Ikuti tahapan panduan berikut untuk implementasi fail2ban pada ssh, nginx dan apache
    ### Temukan syntax berikut dan ubah atau sesuaikan
    ### Apabila telah dipastikan syntax tidak ditemukan maka dapat ditambahkan secara manual
    
    [DEFAULT]
    bantime = 60m
    findtime = 10m
    maxretry = 5
    backend = auto
    ignoreip = 127.0.0.1/8 ::1 10.0.0.0/8 167.205.0.0/16 103.107.4.0/22
    
    # ignoreip yang digunakan pada konfigurasi merupakan IP Internal ITB (optional)
    
    ## Konfigurasi  untuk ssh
    
    [sshd]
    enabled = true
    port = ssh
    logpath = %(sshd_log)s
    backend = systemd
    
    ## Konfigurasi untuk nginx web server
    
    [nginx-http-auth]
    enabled = true
    port = http,https
    logpath = /var/log/nginx/*error.log
    
    [nginx-botsearch]
    enabled = true
    port = http,https
    logpath = /var/log/nginx/*access.log
    
    ## Konfigurasi untuk apache web server
    
    [apache-auth]
    enabled = true
    port = http,https
    logpath = /var/log/apache2/*error.log
    
    Penjelasan singkat fungsi syntax pada konfigurasi :
    bantime Durasi pemblokiran IP
    findtime Jangka waktu untuk menemukan anomali
    maxretry Batas maksimal kuantitas anomali yang ditemukan 
    backend Cara fail2ban membaca log
    logpath Lokasi file log pada direktori yang ditujukan untuk dipantau oleh fail2ban
    ignoreip Menghiraukan anomali dari IP yang didaftarkan

  5.  Setelah konfigurasi selesai disesuaikan, tutup dan simpan konfigurasi, lalu mulai dan aktifkan fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    sudo systemctl status fail2ban
  6. Setelah memastikan fail2ban telah aktif, pastikan untuk jail yang sebelumnya sudah dikonfigurasi telah aktif
    sudo fail2ban-client status
    
    # Untuk pengecekan lebih detail dapat dilakukan pada status jail yang lebih spesifik
    
    sudo fail2ban-client status <sshd | nginx-http-auth | nginx-botsearch | apache-auth>
  7. Untuk melihat hasil kinerja dari fail2ban dapat dilihat melalui status jail dan juga melalui log fail2ban
    # Melihat melalui status jail
    
    root@username:/home/<username># sudo fail2ban-client status <jail>
    Status for the jail: <jail>
    |- Filter
    |  |- Currently failed: xx # anomali yang ditemukan
    |  |- Total failed:     xx # total anomali yang ditemukan
    |  - File list:        /var/log/xxx/xxx.xxx # log path yang dipantau oleh fail2ban pada jail
    - Actions
       |- Currently banned: xx # jumlah ip yang sedang dalam keadaan ban
       |- Total banned:     xx # total jumlah ip yang ter-ban
       |- Banned IP list:   xxx.xxx.xxx.xxx # list ip yang sedang dalam keadaan ban
    
    # Melihat melalui log
    
    sudo tail -f /var/log/fail2ban.log

Untuk konfigurasi yang telah dilakukan merupakan konfigurasi default secara umum dimana filter yang digunakan telah disediakan oleh fail2ban. path filter : /etc/fail2ban/filter.d/