ModSecurity, juga dikenal sebagai Modsec, adalah firewall aplikasi web sumber terbuka dan gratis untuk server web Apache. ModSecurity adalah modul Apache yang membantu Anda melindungi server web Anda dari berbagai jenis serangan termasuk injeksi SQL, XSS, trojan, bot, penangkapan/pembajakan sesi, dan banyak lagi. ModSecurity menyediakan kumpulan aturan yang kuat dengan pemantauan web waktu nyata, pencatatan log, dan kontrol akses.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi Mod Security dengan Apache di 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 2GB 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 LAMP Stack
Pertama, Anda perlu menginstal LAMP Stack di server Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y
Setelah menginstal LAMP, mulai layanan Apache dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start apache2 systemctl enable apache2
Pada titik ini, server web Apache diinstal dan berjalan di server Anda.
Langkah 3 – Instal ModSecurity
apt-get install libapache2-mod-security2 -y
Setelah penginstalan selesai, mulai ulang layanan Apache untuk menerapkan perubahan.
systemctl restart apache2
Selanjutnya, Anda juga dapat memeriksa apakah modul telah dimuat atau belum dengan menjalankan perintah berikut:
apachectl -M | grep security
Anda akan mendapatkan output berikut:
security2_module (shared)
Langkah 4 – Konfigurasi ModSecurity
Tidak ada aturan keamanan yang dikonfigurasi secara default, jadi Anda harus mengaktifkannya terlebih dahulu. Untuk melakukannya, ganti nama file konfigurasi default ModSecurity /etc/modsecurity/modsecurity.conf-recommended menjadi /etc/modsecurity/modsecurity.conf.
cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Selanjutnya, edit file menggunakan editor teks pilihan Anda:
nano /etc/modsecurity/modsecurity.conf
Temukan baris berikut:
SecRuleEngine DetectionOnly
Ganti dengan yang berikut ini:
SecRuleEngine On
Simpan dan tutup file setelah Anda selesai. Kemudian, mulai ulang layanan Apache agar perubahan diterapkan.
systemctl restart apache2
Langkah 5 – Unduh dan Konfigurasi Aturan Inti ModSecurity
Kumpulan aturan default ModSecurity tersedia di dalam direktori /usr/share/modsecurity-crs, tetapi disarankan untuk mengunduh kumpulan aturan baru dari GitHub.
Pertama, hapus aturan lama dengan perintah berikut:
rm -rf /usr/share/modsecurity-crs
Selanjutnya, unduh kumpulan aturan terbaru dengan perintah berikut:
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
Selanjutnya, Anda harus mengaktifkan set aturan ini dalam konfigurasi Apache. Anda dapat mengaktifkannya dengan mengedit file /etc/apache2/mods-enabled/security2.conf:
nano /etc/apache2/mods-enabled/security2.conf
Tambahkan baris berikut di atas baris “”
IncludeOptional "/usr/share/modsecurity-crs/*.conf IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
Simpan dan tutup file. Kemudian, restart layanan Apache dan aktifkan modul header Apache untuk mengimplementasikan perubahan.
a2enmod headers systemctl restart apache2
Pada titik ini, ModSecurity dikonfigurasi untuk bekerja dengan server web Apache.
Langkah 6 – Uji ModSecurity
Setelah mengonfigurasi ModSecurity, Anda dapat mencoba menjalankan skrip berbahaya di browser web dan memeriksa apakah aturan ModSecurity akan dipicu.
Buka browser web Anda dan ketik URL http://your-server-ip/index.html?exec=/bin/bash . Anda akan mendapatkan pesan kesalahan terlarang di halaman berikut:
Untuk menguji aturan ModSecurity untuk melindungi dari serangan XSS yang disimulasikan, akses URL http://your-server-ip/?q=”> dari peramban web Anda. Anda akan melihat layar berikut:
Untuk menguji aturan ModSecurity terhadap pemindaian Nessus, gunakan perintah curl dengan pemindai Nessus untuk mengirim permintaan HTTP ke server Apache seperti yang ditunjukkan di bawah ini:
curl -i http://your-server-ip -A Nessus
Anda harus mendapatkan respons 403 Forbidden karena ModSecurity telah mengidentifikasi Agen Pengguna sebagai pemindaian Nessus:
HTTP/1.1 403 Forbidden Date: Sat, 21 Dec 2019 04:17:24 GMT Server: Apache/2.4.29 (Ubuntu) Content-Length: 278 Content-Type: text/html; charset=iso-8859-1
Langkah 7 – Kecualikan Domain Tertentu dari ModSecurity
Dalam beberapa kasus, Anda perlu mengecualikan domain tertentu dari perlindungan ModSecurity. Untuk menonaktifkan ModSecurity untuk domain tertentu, buka file konfigurasi host virtual Apache untuk domain tertentu:
nano /etc/apache2/site-enabled/your-domain.conf
Tambahkan baris berikut di dalam blok
<IfModule security2_module> SecRuleEngine Off </IfModule>
Simpan dan tutup file. Kemudian, restart layanan Apache untuk menerapkan perubahan.
systemctl restart apache2
Kesimpulan
Kami telah meninjau cara menginstal dan mengkonfigurasi ModSecurity untuk melindungi server web Apache Anda dari serangan berbahaya. Untuk informasi lebih lanjut, kunjungi dokumentasi ModSecurity di ModSecurity.