Halo, Kali ini saya akan berbagi pengalaman mengenai sebuah security yang wajib diterapkan pada sebuah server. Sedikit cerita Ketika saya mengelola sebuah server sering sekali saya menemukan server yang dikelola disusupi dan digunakan oleh orang-orang yang tidak bertanggung jawab, ini sangat berbahaya mengingat data pada server sangat penting dan rahasia, oleh sebab itu saya akan berbagi mengenai salah satu security yaitu WAF (Web Application Firewall). WAF adalah sebuah tools security yang digunakan di server untuk melindungi sebuah server dari serangan cyber, WAF yang saya ingin bagikan adalah Modesecurity-Owasp. ModSecurity adalah sebuah WAF yang berfungsi untuk melindungi aplikasi web dari serangan seperti SQL Injection, XSS, Brute Force, dan banyak lagi. Sedangkan OWASP CRS sendiri adalah aturan atau rule siap pakai yang akan digunakan oleh WAF ModSecurity untuk mendeteksi dan mencegah serangan siber.
Persiapan sebelum Instalasi dan Konfigurasi Modesecurity
- Server Ubuntu 22.04
- Nginx 1.28
Seperti yang sudah jelaskan di atas tentang pengertian dan fungsi dari modsec. Jadi singkatnya, Kita akan melakukan instalasi ModSecurity di Nginx dan menggunakan rule OWASP CRS sebagai aturan atau rule firewallnya. secara garis besar untuk instalasi dan konfigurasi sebagai berikut :
- Build dan Install ModSecurity versi 3
- Install Nginx
- Rebuild Nginx + Modsecurity Nginx Connector
- Aktifkan ModSecurity
- Update Rule dengan CRS
- Testing
Langkah #1: Update dan Install Package Dependensi
Langkah wajib yang harus dilakukan sebelum menginstall
sesuatu di server adalah update package. Setelah itu install juga package yang
diperlukan untuk menjalankan modsec.
|
sudo apt
update && sudo apt upgrade -y sudo apt install git gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libgeoip-dev libyajl-dev doxygen libpcre3-dev libpcre2-16-0 libpcre2-dev libpcre2-posix3 zlib1g zlib1g-dev -y |
Atur juga timezone server dan sesuaikan dengan daerah.
disini saya mengatur timezone server ke Asia/Jakarta.
|
sudo
timedatectl set-timezone Asia/Jakarta |
Langkah #2: Download dan Build ModSecurity 3
|
#Clone owasp-modsec |
Langkah #3: Menginstall Nginx
Jika sudah tersedia Nginx, step ini bisa di skip.Kita perlu menginstall NGINX terlebih dahulu agar dependensi yang diperlukan bisa tersedia. Dan sebagai referensi konfigurasi yang akan digunakan setelah hasil build selesai. Selain itu juga sebagai langkah antisipasi jika proses build dari source code terjadi masalah atau kendala.
|
sudo apt
install nginx -y sudo
systemctl start nginx
sudo systemctl enable nginx sudo systemctl status nginx |
|
cd /opt
&& sudo wget https://nginx.org/download/nginx-1.28.0.tar.gz |
Langkah #5: Download Modsecurity-Nginx-Connector
ModSecurity NGINX Connector adalah modul untuk menghubungkan
NGINX dengan ModSecurity. Secara default, NGINX tidak bisa langsung menggunakan
ModSecurity karena tidak didukung. Jadi perlu konektor sebagai jembatan yang
membuat NGINX bisa berjalan dengan ModSecurity.
|
cd /opt
&& sudo git clone https://github.com/owasp-modsecurity/ModSecurity-nginx.git |
Langkah #6: Build Nginx Source Code + ModSecurity-Nginx-Connector
Seperti yang sudah diinformasikan sebelumnya, Nginx secara default tidak support Modsecurity. jadi kita perlu merebuild Nginx beserta module modsec-nginx-connector agar keduanya bisa dibekerja dengan baik.
|
cd
nginx-1.28.0/ |
Selanjutnya copy Modsec ke modules (nginx 1.28) modules-enabled (nginx 1.24)
|
sudo cp
objs/ngx_http_modsecurity_module.so /etc/nginx/modules/ |
Langkah #7: Aktifkan ModSecurity di Nginx
Untuk mengaktifkan, kita perlu melakukan konfigurasi file nginx.conf agar bisa meload modules modsecurity.
|
sudo nano
/etc/nginx/nginx.conf |
Edit file /etc/nginx/modsecurity.conf dan ubah SecRuleEngine ke on.
|
sudo nano
/etc/nginx/modsecurity.conf -> Edit bagian SecRuleEngine ubah benjadi On |
Langkah #8: Update Rule Menggunakan OWASP CRS
OWASP CRS adalah paket rule yang akan digunakan oleh nginx
untuk identifikasi tipe serangan yang masuk ke server. Jika serangan yang masuk
cocok dengan salah satu aturan dalam CRS, maka ModSecurity akan memblokir
serangan tersebut.
|
sudo git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/owasp-crs |
Kemudian salin konfigurasi default dari CRS yang disertakan
dalam repositori tersebut. Perintah di di bawah ini akan menyalin file
crs-setup.conf.example menjadi crs-setup.conf, yang digunakan untuk mengatur
pengaturan dasar CRS.
|
sudo cp
/etc/nginx/owasp-crs/crs-setup.conf{.example,} |
Lanjut edit file modsecurity.conf untuk mengupdate dan load
rule OWASP CRS.
|
sudo nano
/etc/nginx/modsecurity.conf |
Masukkan code berikut di bagian paling bawah:
|
Include
owasp-crs/crs-setup.conf |
Kemudian restart nginx
|
sudo nginx -t |
Langkah #9: Memasang ModSecurity Pada VirtualHost Nginx
Kita juga perlu menambahkan dua baris konfigurasi berikut di
setiap virtualhost Nginx. Hal ini bertujuan untuk mengaktifkan ModSecurity pada
virtual host yang sudah dibuat.
|
sudo nano
/etc/nginx/sites-enabled/default |
Tambahkan pada vhost nginx
|
modsecurity
on; |
Kemudian Restart
|
sudo nginx -t |
Langkah #10: Pengujian
Pada langkah ini Kita akan mencoba mengakses server melalui
browser dan menyisipkan kode yang mencurigakan, seperti perintah shell. Seperti
contoh ini Kita akan coba untuk menjalankan perintah shell /bin/bash di
server melalui parameter URL. http://ip-address-server/as.php?s=/bin/bash
cek log modsecurity atau di nginx
|
tail -f
/var/log/nginx/error.log |
Setelah mengikuti langkah-langkah di atas, jika server menampilkan error 403 dan mencatat percakapan yang diblokir di log, berarti ModSecurity sudah berhasil melindungi server Nginx dari potensi ancaman. Pastikan untuk terus memonitor log secara berkala agar sistem tetap aman dari serangan. Dengan pengaturan yang tepa. Semoga bermanfaat

0 Komentar