Fail2ban on Linux (Nginx)

    Pada kesempatan kali ini saya ingin berbagi mengenai keamanan pada server untuk mencegah serangan dan ancaman. karena banyaknya serangan melalu exploit dan scrapping, hal ini bisa memicu kerentanan terhadap server.     

    Fail2Ban adalah sebuah software keamanan di Linux yang digunakan untuk mencegah serangan brute-force (misalnya ke SSH, FTP, dan layanan lainnya) dengan cara memblokir IP address yang mencurigakan melalui firewall, sebelumnya telah menjelaskan mengenai fail2ban+ssh , untuk kali ini akan mencoba menggunakan fail2ban+nginx. berikut langkah-langkahnya

Langkah #1 : Update package repository OS
#sudo apt update

Langkah #2 : Install fail2ban
#sudo apt install fail2ban -y

Langkah #3 : Cek status fail2ban
#sudo systemctl status fail2ban

Langkah #4 : Buat konfigurasi filter untuk sesuai dengan jenis serangan yang berlaku, sebgai contoh saya akan membuat 2 filter, yaitu nginx-badbot, nginx-abuse. Buat file filter di /etc/fail2ban/filter.d/
#nginx-abuse.conf

[Definition]

failregex = ^<HOST> - - \[.*?\] "(GET|POST) /.*?(LOGIN|WAP|APK|RTP|LINK-ALTERNATIF|BET|SLOT|JUDI|TOGEL|KASINO|bash|sh|shell|cmd|cgi|wp-content|wp-admin|wp-login|phpmyadmin|vendor|laravel).*? HTTP/.*?" (403|404|400) .*$

ignoreregex =


#nginx-badbot.conf

[Definition]
allowipv6 = true
failregex = ^<HOST> - - \[.*?\] "GET /[A-Z0-9\-]+ HTTP.*?" 403
ignoreregex =
journalmatch = _SYSTEMD_UNIT=nginx.service + _COMM=nginx


Langkah #5 :  Buat file untuk konfigurasi nginx-abuse.local dan nginx-badbot.local di /etc/fail2ban/jail.d/
#nginx-abuse.local

[nginx-abuse]
enabled  = true
filter   = nginx-abuse
port     = http,https
logpath  = /var/log/nginx/access.log
backend  = polling
findtime = 600
maxretry = 1
bantime  = -1
banaction = ufw


#nginx-badbot.local

[nginx-badbot]
enabled  = true
filter   = nginx-badbot
port     = http,https
logpath  = /var/log/nginx/ access.log
backend  = polling
findtime = 600
maxretry = 1
bantime  = -1
banaction = ufw


Langkah #6 : Restart fail2ban
#systemctl restart fail2ban
#fail2ban-client reload


Langkah #7 : Cek Status 
#sudo fail2ban-client status
#sudo fail2ban-client status nginx-abuse && fail2ban-client status nginx-badbot

Sekian pembahasan mengenai security menggunakan fail2ban+nginx. Terimakasih

Posting Komentar

0 Komentar