Cara Auto block ip attacker yang mengakses nginx dengan respon 403 menggunakan Fail2ban

         Hallo teman-teman semuanya kembali lagi bersama dengan saya di blog kita bersama, kali ini kita akan membahas seputar keamanan server lagi, yakni bagaimana cara melakukan block ip attacker yang mengakses nginx dengan respon 403 menggunakan tools fail2ban, mungkin diantara teman-teman pasti bertanya-tanya apa sih tujuan kita melakukan block ip ini?, ya tentu saja alasanya ialah karna keamanan server kita hehehe,, mungkin jika kita melihat beberapa log akses yang ditampilkan oleh nginx, terdapat beberapa ip attacker yang mencoba untuk menerobos keamanan server kita, seringkali ketika seoarang attacker sudah melakukan inject backdoor kedalam server via nginx, ini biasanya akan ditandai dengan kode 403 Access Forbiden dari log server nginx kita,, nahh untuk mengantisipasinya kita akan melakukan block ip attacker sesegara mungkin supaya attacker tidak dapat melakukan akses ke server kita
    nahh dari penjelesan singkat diatas aku yakin rekan-rekan semuanya sudah paham ya kenapa kita membuat tutorial ini hehe,sebelum masuk kedalam langkah-langkah pembuatanya, silahkan simak penjelasan singkat terkait tools fail2ban, sebagai berikut : 


Fail2ban adalah perangkat lunak keamanan berbasis log yang digunakan untuk mencegah serangan brute-force dan jenis serangan berbahaya lainnya pada server. Perangkat ini bekerja dengan memantau file log server untuk entri yang mencurigakan atau berbahaya, seperti upaya login yang gagal secara berulang kali atau permintaan yang menghasilkan status kesalahan tertentu seperti 403 Forbidden.


!! PERHATIAN: semua konfigurasi yang digunakan dalam tutorial ini merupakan hasil dari lab yang dibuat sendiri dan tidak menggunakan perangkat real , dan tujuan dibuatnya tutorial ini hanyalah untuk pembelajaran semata !!


Langkah 1. Install fail2ban

untuk melakukan installasi fail2ban silahkan jalankan perintah berikut ini di server teman-teman semuanya : 

$ sudo apt  install fail2ban

Langkah2. Konfigurasi fail2ban

masuk kedalam file konfigurasi fail2ban 

$ sudo nano /etc/fail2ban/jail.local

selanjutnya silahkan paste konfigurasi fail2ban dibawah ini kedalamynya 

[nginx-403]
enabled = true
port = http,https
filter = nginx-403
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 3600

Keterangan:
-enabled: Mengaktifkan filter.
port: Port yang akan dipantau.
filter: Nama filter yang akan kita buat.
logpath: Jalur ke log akses Nginx.
maxretry: Jumlah percobaan sebelum IP diblokir.
bantime: Waktu blokir dalam detik (3600 detik = 1 jam).

selanjutnya jangan lupa simpan perubahan dengan menekan tombol kombinasi ctrl + x, y, enter

Langkah3. Membuat file filter nginx fail2ban


$ sudo nano /etc/fail2ban/filter.d/nginx-403.conf

selanjutnya tambahkan aturan filter berikut kedalamnya : 

[Definition]
failregex = ^<HOST> -.* "(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT) .* HTTP/1\.[01]" 403
ignoreregex =

Keterangan : 
- failregex : berisikan regex yang akan dlakukan filter, pada regex filter diatas dapat kita artikan bahwa, semua yang melakukan request ke server nginx menggunakan metode GET dengan kode respon  403 akan dilakukan block IP
- ignoreregex : ini berfungsi untuk melakukan set pengecualian regex, semisal rekan-rekan punya sebuah server yang jika melakukan request ke server nginx dan menghasilkan code 403, dan rekan-rekan ingin fail2ban mengabaikanya, maka tambahkan pada bidang ini 

selanjutnya silahkan simpan, dan lakukan reload service fail2ban dengan menjalankan perintah berikut ini : 

$ sudo systemctl restart fail2ban

Langkah 4. Uji coba 


pada proses uji coba ini, saya akan membuat sebuah topologi sederhana seperti berikut ini : 




pada proses ini attacker akan melakukan inject backdoor ke nginx, sehingga nginx mengembalikan kode 403 Access Forbidden ke attacker, nahh pada proses respon 403 ini, fail2ban akan melakukan analisa terhadap log pada server nginx, dengan contoh log dapat dilihat pada gambar dibawah : 



nahh dapat dilihat pada log tersebut kita analogikan ip attacker sudah lebih dari 5x melakukan akses ke server nginx dengan code respon 403, sehingga fail2ban akan melakukan block pada ip attacker, berikut tampilan dari computer attacker, 



dapat dilihat bahwa computer attacker tidak dapat melakukan akses ke server nginx, ditandai dengan error "Connection refused", dan jika kita lihat status ip yang diblock oleh attacker, rekan-rekan dapat menjalankan perintah berikut 

$ sudo fail2ban-client status nginx-403 


dapat kita lihat bahwa ip attacker sudah berhasil di banned oleh fail2ban, dengan ini proses konfigurasi kita pada fail2ban telah berhasil, 

Sekian penjelasan terkait langkah-langkah untuk cara melakukan  block ip attacker yang mengakses nginx dengan respon 403 menggunakan Fail2ban, jika rekan-rekan ada pertanyaan silahkan tinggalkan pesan dikolom komentar,,,

sekian dan terimakasih...

0 Komentar