Apache Web Server termasuk salah satu server web yang populer dan banyak digunakan untuk menghosting situs web statis dan berbasis PHP. Sebagian besar situs WordPress dihosting di server yang memiliki Apache Web Server. Fail2ban adalah kerangka kerja perangkat lunak pencegahan intrusi yang banyak digunakan untuk melindungi sistem dari serangan Brute Force dan DDoS. Ia memantau log sistem secara real-time untuk mengidentifikasi serangan otomatis dan memblokir klien yang menyerang untuk membatasi akses layanan baik secara permanen atau untuk jangka waktu tertentu. Tutorial ini menunjukkan cara melindungi Apache Web Server dari serangan DDoS dan Brute Force menggunakan Fail2ban di Rocky linux.
Konfigurasi Apache untuk mengamankan layanan Apache
1 2 |
# Install fail2ban dnf install fail2ban |
1 2 3 |
# Menjalankan fail2ban systemctl start fail2ban systemctl enable fail2ban |
1 2 |
# Konfigurasi fail2ban nano /etc/fail2ban/jail.conf |
Konfigurasi Fail2ban untuk mengamankan webserver Apache
Bagian ini menyediakan konfigurasi yang diperlukan untuk mengamankan layanan apache , apache-noscript , apache-overflows , dan apache-badbots dengan konfigurasi file jail.conf di /etc/fail2ban/jail.conf, dengan cara:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Copy dan paste kedalam file jail.conf [apache–auth] enabled = true port = http,https filter = apache–auth logpath = /var/log/httpd/error_log maxretry = 3 findtime = 600 [apache–badbots] enabled = true port = http,https filter = apache–badbots logpath = /var/log/httpd/access_log bantime = 48h maxretry = 1 [apache–noscript] enabled = true port = http,https filter = apache–noscript logpath = /var/log/httpd/error_log maxretry = 3 findtime = 600 [apache–overflows] enabled = true port = http,https filter = apache–overflows logpath = /var/log/httpd/error_log maxretry = 2 findtime = 600 |
1 |
systemctl restart fail2ban |
1 2 3 |
# Check Status fail2ban–client status fail2ban–client status apache–auth |
1 2 3 |
Status |– Number of jail: 4 `– Jail list: apache–auth, apache–badbots, apache–noscript, apache–overflows |
Status Fail2ban menunjukkan bahwa 4 jail.conf yang aktif. Jail.conf yang ditambahkan ke konfigurasi fail2ban yaitu;
- [apache-auth] – Memblokir upaya login yang gagal.
- [apache-noscript] – Memblokir klien jarak jauh yang mencari dan mengeksekusi skrip.
- [apache-overflows] – Memblokir klien yang mencoba meminta URL mencurigakan.
- [apache-badbots] – Memblokir permintaan bot berbahaya.
Kita juga dapat menambahkan dua layanan tambahan di jail.conf untuk melindungi permintaan GET and POST seperti yang ditunjukkan di bawah ini.
1 |
nano /etc/fail2ban/jail.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[http–get–dos] enabled = true port = http,https filter = http–get–dos logpath = /var/log/httpd/error_log maxretry = 100 findtime = 100 bantime = 200 [http–post–dos] enabled = true port = http,https filter = http–get–dos logpath = /var/log/httpd/error_log maxretry = 10 findtime = 20 bantime = 6000 |
1 2 |
# add filter nano /etc/fail2ban/filter.d/http–get–dos.conf |
1 2 3 4 5 6 7 8 9 |
[Definition] # Option: failregex # Note: This regex will match any GET entry in your logs, so basically all valid and not valid entries are a match. # You should set up in the jail.conf file, the maxretry and findtime carefully in order to avoid false positives. failregex = ^<HOST> –.*“(GET|POST).* # Option: ignoreregex Ignoreregex = |
1 2 3 4 5 |
# Reload Fail2ban systemctl restart fail2ban # Check Status fail2ban–client status |
1 2 3 4 |
# Output Status |– Number of jail: 6 `– Jail list: apache–auth, apache–badbots, apache–noscript, apache–overflows, http–get–dos, http–post–dos |
Tutorial ini cara konfigurasi untuk melindungi Apache Web Server dari serangan DDoS dan Brute Force menggunakan Fail2ban.
Leave a Reply