Melindungi server web Anda dari berbagai jenis serangan adalah tanggung jawab penting bagi administrator sistem mana pun. ModEvasive adalah modul server web Apache yang membantu Anda melindungi server web Anda jika terjadi serangan DoS, DDoS, dan brute force. Jenis serangan ini menyebabkan server kehabisan memori, membuat situs web Anda mogok.
Modul mod_evasive bekerja dengan membuat tabel hash dari Alamat IP dan URI dan memantau permintaan server masuk yang mencurigakan, seperti:
- Membuat lebih dari 100 koneksi serentak per detik.
- Meminta halaman yang sama beberapa kali per detik.
Jika permintaan mencurigakan seperti itu terjadi, modul mod_evasive mengirimkan kesalahan 403 dan memblokir alamat IP.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi mod_evasive dengan Apache di server Ubuntu 18.04.
Prasyarat
- VPS Ubuntu 18.04 baru di Platform Cloud Atlantic.Net.
- Alamat IP statis yang dikonfigurasi di server Anda.
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 18.04 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 18.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal mod_evasive
Sebelum memulai, server web Apache harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan perintah berikut:
apt-get install apache2 apache2-utils -y
Setelah server web Apache diinstal, Anda dapat menginstal mod_evasive dengan perintah berikut:
apt-get install libapache2-mod-evasive -y
Selama instalasi, Anda akan diminta untuk mengkonfigurasi server email Postfix untuk pemberitahuan email. Anda dapat memilih opsi yang Anda inginkan untuk menyelesaikan instalasi. Jika Anda tidak yakin, pilih saja hanya lokal atau tidak ada konfigurasi .
Setelah menginstal mod_evasive, Anda dapat memverifikasi apakah modul mod_evasive diaktifkan dengan menjalankan perintah berikut:
apachectl -M | grep mengelak
Anda akan mendapatkan output berikut:
[Sen 27 Jan 13:55:35.707317 2020] [so:warn] [pid 29031] AH01574:module dav_module sudah dimuat, melewatkan evasive20_module (dibagikan)
Pada titik ini, modul mod_evasive diinstal dan diaktifkan. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Langkah 3 – Konfigurasi mod_evasive
File konfigurasi default mod_evasive terletak di /etc/apache2/mods-enabled/evasive.conf. Anda perlu mengonfigurasi file ini sesuai kebutuhan Anda.
Anda dapat membuka file ini menggunakan editor nano seperti yang ditunjukkan di bawah ini:
nano /etc/apache2/mods-enabled/evasive.conf
Ubah file seperti yang ditunjukkan di bawah ini. Kami merekomendasikan untuk mengubah DOSEmailNotify ke alamat yang Anda inginkan untuk mengirim email (jika dikonfigurasi) dan DOSSystemCommand – misalnya “su – richard -c ‘/sbin… %s …’”
Simpan dan tutup file setelah Anda selesai.
Penjelasan singkat dari setiap opsi ditampilkan di bawah ini:
- 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 jumlah halaman.
- DOSSiteInterval :Opsi ini menentukan interval jumlah situs.
- Periode Pemblokiran DOS :Opsi ini menentukan jumlah waktu dalam detik klien akan diblokir.
- DOSEmailNotify :Opsi ini mengirim email ke alamat yang ditentukan saat alamat IP telah masuk 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 direktori untuk menyimpan log mod_evasive dan ubah kepemilikannya menjadi www-data dengan perintah berikut:
mkdir /var/log/mod_evasivechown -R www-data:www-data /var/log/mod_evasive
Terakhir, restart layanan Apache untuk mengimplementasikan perubahan:
systemctl restart Apache2
Langkah 4 – Uji mod_evasive
Pada titik ini, modul mod_evasive diinstal dan dikonfigurasi. Saatnya menguji apakah modul berfungsi dengan benar.
Buka sistem jarak jauh dan kirim permintaan halaman massal ke server menggunakan perintah ab:
ab -n 1000 -c 20 http://your-server-ip/
Perintah ini akan menyebabkan serangan DoS yang setara dengan mengirimkan 1000 permintaan halaman dalam 10 koneksi bersamaan.
Di server, periksa log email dengan menjalankan perintah berikut:
ekor -15 /var/mail/root
Anda akan melihat bahwa alamat IP klien telah masuk daftar hitam oleh mod_evasive:
Diterima:oleh ubuntu1804 (Postfix, dari userid 33) id B0C3EC1753; Sen, 27 Jan 2020 14:15:09 +0000 (UTC)Kepada:[email protected]:1.0Content-Type:text/plain; charset="ANSI_X3.4-1968"Content-Transfer-Encoding:8bitMessage-Id:Tanggal:Sen, 27 Jan 2020 14:15:09 +0000 (UTC)Dari:www-data Kepada:[email protected]:HTTP BLACKLIST 103.250.161.100mod_evasive HTTP Blacklist 103.250.161.100
Anda juga dapat menguji mod_evasive menggunakan skrip bawaan test.pl. Anda perlu memodifikasi skrip ini untuk membuatnya berfungsi.
Anda dapat mengedit skrip seperti yang ditunjukkan di bawah ini:
nano /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Temukan baris berikut:
cetak $SOCKET "GET /?$_ HTTP/1.0\n\n";
Ganti dengan yang berikut ini:
cetak $SOCKET "GET /?$_ HTTP/1.0\r\nHost:127.0.0.1\r\n\r\n";
Simpan dan tutup file setelah Anda selesai. Kemudian, jalankan skrip menggunakan perintah perl:
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Jika semuanya bekerja dengan benar, Anda akan mendapatkan output berikut:
HTTP/1.1 403 ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403ForbiddenHTTP/1.1 403HTTP Terlarang/1.1 403HTTP Terlarang/1.1 403HTTP Terlarang/1.1 403 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 Forbidden
Kesimpulan
Selamat! Modul mod_evasive sekarang dikonfigurasi untuk melindungi server Anda dari serangan DDoS dan Brute force.