Berikut adalah shell script yang dapat digunakan untuk menginstal dan mengonfigurasi ModSecurity di Nginx pada server berbasis Ubuntu/Debian. Script ini akan mencakup langkah-langkah instalasi dan konfigurasi otomatis.
#!/bin/bash
# Pastikan hanya dijalankan dengan root privileges
if [[ $EUID -ne 0 ]]; then
echo "Script ini harus dijalankan dengan root."
exit 1
fi
# Update dan install dependensi yang diperlukan
echo "Memperbarui paket dan menginstal dependensi..."
apt update -y
apt install -y build-essential libxml2 libxml2-dev libcurl4-openssl-dev libjansson-dev libyajl-dev liblzma-dev git
# Install ModSecurity dan modsecurity-nginx
echo "Menginstal ModSecurity dan modsecurity-nginx..."
cd /usr/local/src
# Clone ModSecurity dari GitHub
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
git submodule update --init --recursive
./build.sh
./install.sh
# Clone modsecurity-nginx
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
cd ModSecurity-nginx
# Mengkompilasi ModSecurity dengan Nginx
echo "Mengkompilasi ModSecurity untuk Nginx..."
nginx_path=$(which nginx | sed 's:/sbin/nginx::')
./configure --add-dynamic-module=/usr/local/src/ModSecurity-nginx
make
make install
# Aktifkan ModSecurity di Nginx
echo "Mengonfigurasi Nginx untuk menggunakan ModSecurity..."
# Backup file konfigurasi Nginx
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# Menambahkan pengaturan ModSecurity di nginx.conf
echo "modsecurity on;" >> /etc/nginx/nginx.conf
echo "modsecurity_rules_file /etc/nginx/modsec/main.conf;" >> /etc/nginx/nginx.conf
# Download OWASP ModSecurity Core Rule Set (CRS)
echo "Mengunduh dan mengonfigurasi OWASP CRS..."
cd /etc/nginx
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git modsec
# Menambahkan aturan CRS ke konfigurasi ModSecurity
echo "Include /etc/nginx/modsec/owasp-modsecurity-crs/crs-setup.conf" >> /etc/nginx/modsec/main.conf
echo "Include /etc/nginx/modsec/owasp-modsecurity-crs/rules/*.conf" >> /etc/nginx/modsec/main.conf
# Cek konfigurasi Nginx
echo "Memeriksa konfigurasi Nginx..."
nginx -t
# Restart Nginx
echo "Me-restart Nginx..."
systemctl restart nginx
# Verifikasi ModSecurity Berfungsi
echo "Verifikasi ModSecurity..."
echo "Coba akses Nginx dan periksa log untuk melihat apakah ModSecurity mendeteksi serangan (misal: injeksi SQL)."
tail -f /var/log/nginx/error.log
.sh
, misalnya install_modsecurity.sh
.Memberikan Akses Eksekusi: Berikan akses eksekusi pada script yang telah disimpan:chmod +x install_modsecurity.sh
sudo ./install_modsecurity.sh
main.conf
dan nginx.conf
sesuai kebutuhan spesifik Anda.