ModEvasive Apache: Install, Seting DDos Attack


Sistem keamanan server VPS dari DDos Attack menggunakan ModEvasive Apache
Hosting server jenis VPS jika tidak di seting sistem sekuriti akan sangat bahaya dan rentan mendapatkan masalah DDos Attack oleh bot jahat yang akhirnya akan menjadikan vps down dan Bandwidth habis.

Mengaktifkan ModEvasive Apache menjadi pertahanan kedua layer security setelah sistem keamanan pertama pada layer DNS, ini perlu diseting sehingga VPS tetap aman.

Sistem kerja secarang DDos adalah membanjiri traffic secara brutal / detik sehingga CPU 100% dan akhirnya VPS Down serta kuota Bandwidth limit.

Install ModEvasive

Akses VPS Lunux Ubuntu lewat SSH :

apt-get update
apt-get install apache2
apt-get install libapache2-mod-evasive

Pada saat proses install abaikan postfix configuration

Pilih : No configuration.

Selanjutnya setelah proses install selesai matikan sistem postfix

systemctl disable postfix

Cek apakah modevasive berjalan dgn kode:

apachectl -M | grep evasive

Hasilnya jika berhasil aktif dan jalan:

[Mon Jan 27 13:55:35.707317 2020] [so:warn] [pid 29031] AH01574: module dav_module is already loaded, skipping
 evasive20_module (shared)

Seting mod evasive

Buka file seting:

nano /etc/apache2/mods-enabled/evasive.conf

Bagian paling penting adalah seting firewall evasive dengan nilai :

<IfModule mod_evasive20.c>
#DOSHashTableSize 3097
#DOSPageCount 2
#DOSSiteCount 50
#DOSPageInterval 1
#DOSSiteInterval 1
#DOSBlockingPeriod 10
#DOSEmailNotify you@yourdomain.com
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
#DOSLogDir "/var/log/mod_evasive"
</IfModule>

Ubah menjadi :

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/log/mod_evasive"
DOSWhitelist File:/etc/apache2/whitelist
</IfModule>

Keterangan:

  • DOSHashTableSize : mod_evasive menggunakan opsi ini untuk mengontrol ukuran tabel hash. Disarankan untuk meningkatkan ini jika Anda memiliki server web yang sibuk.
  • DOSPageCount : Opsi ini menentukan batas ambang untuk jumlah permintaan yang diizinkan ke URI yang sama per detik. Setelah batas ambang terlampaui, alamat IP klien akan masuk daftar hitam.
  • DOSSiteCount : Opsi ini menentukan batas jumlah total permintaan yang diizinkan ke alamat IP yang sama.
  • DOSPageInterval : Opsi ini menentukan interval hitungan halaman.
  • DOSSiteInterval : Opsi ini menentukan interval hitungan situs.
  • DOSBlockingPeriod : Opsi ini menentukan jumlah waktu dalam detik klien akan diblokir.
  • DOSEmailNotify : Opsi ini mengirimkan email ke alamat yang ditentukan ketika alamat IP telah dimasukkan dalam daftar hitam.
  • DOSSystemCommand : Setiap kali alamat IP masuk daftar hitam, perintah sistem yang ditentukan akan dijalankan.
  • DOSLogDir : Opsi ini mendefinisikan direktori log mod_evasive.

Selanjutnya buat folder log ddos:

mkdir /var/log/mod_evasive 
chown -R www-data:www-data /var/log/mod_evasive

Buat folder whitelist IP

nano /etc/apache2/whitelist
chown www-data.www-data /etc/apache2/whitelist

Isi IP yang akan masuk whitelist, contoh:

DOSWhitelist 127.0.0.1
DOSWhitelist 127.0.0.*
DOSWhitelist 192.168.2.xxx
DOSWhitelist 192.168.3.*
DOSWhitelist 172.16.*.*

Janagn lupa update server VPS dan menjalankan mod evasive restart apaache:

service apache2 restart

Uji mod_evasive DDos Attack

Saatnya menguji apakah modul berfungsi dengan benar mampu blok serangan DDos. Buka sistem jarak jauh (gunakan vps / server berbeda guna ujicoba serangan) dan kirim permintaan halaman massal ke server menggunakan perintah:

ab -n 1000 -c 20 http://IP_adress_target/

Kirim 1000 permintaan koneksi secara bersamaan dalam 1 detik dan hasilnya pada ujicoba 2x :

Server Software: Apache/2.4.41
Server Hostname: 139.xxx.133.xxx
Server Port: 80

Document Path: /
Document Length: 1059 bytes

Concurrency Level: 20
Time taken for tests: 0.151 seconds
Complete requests: 1000
Failed requests: 901
(Connect: 0, Receive: 0, Length: 901, Exceptions: 0)
Non-2xx responses: 901
Total transferred: 546229 bytes
HTML transferred: 357121 bytes
Requests per second: 6632.18 [#/sec] (mean)
Time per request: 3.016 [ms] (mean)
Time per request: 0.151 [ms] (mean, across all concurrent requests)
Transfer rate: 3537.78 [Kbytes/sec] received

Artinya:

Dari 1000 koneksi serangan ada Failed requests: 901 disini berhasil blok IP adress yg masuk secara brutal.

Selanjutnya bisa cek log DDos attack lewat log file:

nano /var/log/mod_evasive
ls -lh

 

Updated: August 22, 2023