Selamat datang di panduan kami tentang cara menginstal LibModsecurity dengan Apache di Ubuntu 18.04. Libmodsecurity (Modsecurity v3), adalah open source, lintas platform web application firewall (WAF) yang dikembangkan oleh Trustwave’s SpiderLabs. Ini adalah penulisan ulang lengkap ModSecurity v2 dan menyediakan bahasa pemrograman berbasis peristiwa yang kuat yang melindungi aplikasi web terhadap berbagai serangan seperti injeksi SQL, Cross-site Scripting (XSS), Local File Include, Remote File Include e. tc. Hal ini juga memungkinkan untuk pemantauan lalu lintas HTTP, logging dan analisis real-time.
Instal LibModsecurity dengan Apache di Ubuntu 18.04
Prasyarat
Jalankan Pembaruan Sistem
Sinkronisasi ulang paket sistem Anda ke versi terbarunya.
apt update apt upgrade
Instal LAMP Stack
Sebelum Anda dapat menginstal dan mengkonfigurasi LibModsecurity dengan Apache di Ubuntu 18.04, Anda harus menginstal LAMP Stack dan menjalankan server Anda. Ikuti tautan di bawah ini untuk mengatur stack LAMP di Ubuntu 18.04.
Cara menginstal LAMP Stack di Ubuntu 18.04
Instal Alat dan Ketergantungan Bangun yang Diperlukan
Untuk menginstal Libmodsecurity atau Modsecurity v3 di Ubuntu 18.04, kita akan membuatnya dari sumber. Oleh karena itu, Anda perlu menginstal beberapa alat dan dependensi build yang diperlukan agar build berhasil.
sudo apt install g++ flex bison curl apache2-dev doxygen libyajl-dev ssdeep liblua5.2-dev libgeoip-dev libtool dh-autoreconf libcurl4-gnutls-dev libxml2 libpcre++-dev libxml2-dev git
Kompilasi dan Instal LibModsecurity di Ubuntu 18.04
Setelah sistem Anda diatur, Anda dapat melanjutkan untuk menginstal Modsecurity v3 di Ubuntu 18.04.
Download Kode Sumber LibModsecurity
Untuk menginstal versi stabil terbaru dari LibModsecurity, Anda perlu mengompilasinya dari sumbernya.
Oleh karena itu, navigasikan ke halaman rilis ModSecurity dan download kode sumber ModSecurity. Anda cukup menggunakan wget untuk menariknya.
wget https://github.com/SpiderLabs/ModSecurity/releases/download/v3.0.4/modsecurity-v3.0.4.tar.gz
Ekstrak kode sumber ModSecurity.
tar xzf modsecurity-v3.0.4.tar.gz
Kompilasi dan Instal LibModsecurity
Arahkan ke direktori sumber LibModsecurity, konfigurasikan, kompilasi, dan instal
cd modsecurity-v3.0.4
Konfigurasikan LibModsecurity untuk menyesuaikannya dengan sistem Anda dan periksa apakah ada ketergantungan yang diperlukan yang hilang.
./build.sh
Anda dapat dengan aman mengabaikan fatal:* pesan error.
./configure
Pastikan untuk memperbaiki masalah ketergantungan, jika ada, sebelum Anda dapat melanjutkan untuk mengkompilasi dan menginstal LibModsecurity dengan Apache di Ubuntu 18.04.
Jika skrip konfigurasi di atas selesai tanpa error, lanjutkan untuk mengkompilasi dan menginstal LibModSecurity.
make
make install
LibModSecurity alias ModSecurity v3 telah diinstal di Ubuntu 18.04
Jika Anda ingin menginstal Modsecurity v2.9, ini tersedia di repositori Ubuntu dan hanya dapat diinstal dengan menjalankan perintah di bawah ini;
sudo apt install libapache2-mod-security2
Instal ModSecurity-Apache Connector
Konektor ModSecurity-apache menyediakan saluran komunikasi antara Apache dan libModsecurity. Sekarang setelah libmodsecurity diinstal, ikuti langkah-langkah berikut untuk menginstal konektor Modsecurity Apache.
Kloning repositori git untuk konektor ModSecurity Apache.
cd ~ git clone https://github.com/SpiderLabs/ModSecurity-apache
Arahkan ke direktori ModSecurity-apache dan jalankan perintah berikut untuk mengkompilasi dan menginstalnya.
cd ModSecurity-apache
./autogen.sh
./configure --with-libmodsecurity=/usr/local/modsecurity/
make sudo make install
Konfigurasi Apache dengan LibModsecurity
Muat Modul Konektor Apache ModSecurity
Konfigurasikan Apache untuk memuat modul konektor Modsecurity Apache dengan menambahkan baris di bawah ini ke file konfigurasi Apache utama.
echo "LoadModule security3_module /usr/lib/apache2/modules/mod_security3.so" | sudo tee -a /etc/apache2/apache2.conf
Konfigurasikan ModSecurity
Buat direktori konfigurasi ModSecurity di bawah /etc/apache2
sudo mkdir /etc/apache2/modsecurity.d
Copy contoh file konfigurasi ModSecurity dari direktori kode sumber ke direktori konfigurasi ModSec yang dibuat di atas dengan mengganti namanya sebagai berikut.
sudo cp ~/modsecurity-v3.0.4/modsecurity.conf-recommended /etc/apache2/modsecurity.d/modsecurity.conf
Copy juga unicode.mappingfile dari direktori sumber ModSecurity ke direktori konfigurasi Apache Modsecurity.
sudo cp ~/modsecurity-v3.0.4/unicode.mapping /etc/apache2/modsecurity.d/
Aktifkan ModSecurity dengan mengubah nilai SecRuleEnginemenjadi On.
sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/apache2/modsecurity.d/modsecurity.conf
Selanjutnya, Anda perlu mengonfigurasi aturan ModSecurity. Oleh karena itu, buat file tempat Anda dapat menentukan aturan yang akan disertakan, katakanlah, /etc/apache2/modsecurity.d/modsec_rules.conf.
sudo vim /etc/apache2/modsecurity.d/modsec_rules.conf
Include "/etc/apache2/modsecurity.d/modsecurity.conf" Include "/etc/apache2/modsecurity.d/owasp-crs/crs-setup.conf" Include "/etc/apache2/modsecurity.d/owasp-crs/rules/*.conf"
Karena kami telah menyertakan Aturan OWASP, lanjutkan untuk menginstalnya.
Instal OWASP ModSecurity Core Rule Set (CRS)
Itu OWASP ModSecurity Core Rule Set (CRS)adalah seperangkat aturan deteksi serangan umum untuk digunakan dengan ModSecurity. Ini bertujuan untuk melindungi aplikasi web dari berbagai serangan, termasuk Sepuluh Teratas OWASP, minimum peringatan palsu.
Kloning CRS dari repositori GitHub ke /etc/apache2/modsecurity.d/seperti yang ditunjukkan di bawah ini;
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /etc/apache2/modsecurity.d/owasp-crs
Selanjutnya ganti nama crs-setup.conf.examplemenjadi crs-setup.conf.
sudo cp /etc/apache2/modsecurity.d/owasp-crs/crs-setup.conf{.example,}
Aktifkan ModSecurity
Setelah semua itu, aktifkan modsecurity pada file konfigurasi situs default atau pada file konfigurasi virtual host apa pun. Dalam panduan ini, kami menggunakan file konfigurasi situs default Apache.
vim /etc/apache2/sites-available/000-default.conf
Lihat contoh konfigurasi host virtual situs default kami tanpa komentar;
<VirtualHost *:80> modsecurity on modsecurity_rules_file /etc/apache2/modsecurity.d/modsec_rules.conf ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Garis;
modsecurity on modsecurity_rules_file /etc/apache2/modsecurity.d/modsec_rules.conf
Mengaktifkan Modsecurity dan menentukan lokasi aturan Modsecurity.
Periksa Apache untuk error konfigurasi dan mulai ulang.
apachectl configtest Syntax OK
systemctl restart apache2
Menguji Keamanan Mod
Selanjutnya uji keefektifan Modsecurity, misalnya command injection. Jalankan perintah di bawah ini;
curl localhost?doc=/bin/ls
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access this resource.</p> <hr> <address>Apache/2.4.29 (Ubuntu) Server at localhost Port 80</address> </body></html>
Periksa log Modsecurity;
tail /var/log/modsec_audit.log
ModSecurity: Warning. Matched "Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:doc' (Value: `/bin/ls' ) [file "/etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "488"] [id "932160"] [rev ""] [msg "Remote Command Execution: Unix Shell Code Found"] [data "Matched Data: bin/ls found within ARGS:doc: /bin/ls"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION"] [tag "WASCTC/WASC-31"] [tag "OWASP_TOP_10/A1"] [tag "PCI/6.5.2"] [hostname "web-01.kifarunix-demo.com"] [uri "/"] [unique_id "156976184572.128853"] [ref "o1,6v10,7t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase"] ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `5' ) [file "/etc/apache2/modsecurity.d/owasp-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "79"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 5)"] [data ""] [severity "2"] [ver ""] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "web-01.kifarunix-demo.com"] [uri "/"] [unique_id "156976184572.128853"] [ref ""] ModSecurity: Warning. Matched "Operator `Ge' with parameter `5' against variable `TX:INBOUND_ANOMALY_SCORE' (Value: `5' ) [file "/etc/apache2/modsecurity.d/owasp-crs/rules/RESPONSE-980-CORRELATION.conf"] [line "76"] [id "980130"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 5 - SQLI=0,XSS=0,RFI=0,LFI=0,RCE=5,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 5, 0, 0, 0"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [tag "event-correlation"] [hostname "web-01.kifarunix-demo.com"] [uri "/"] [unique_id "156976184572.128853"] [ref ""]
Akibatnya, ini mengonfirmasi bahwa Modsecurity berfungsi seperti yang diharapkan dan hanya itu di panduan kami tentang cara menginstal LibModsecurity dengan Apache di Ubuntu 18.04.
Referensi:
ModSecurity-apache
ModKeamanan
Panduan Terkait
Konfigurasikan LibModsecurity dengan Nginx di CentOS 8
Instal LibModsecurity dengan Apache di Fedora 30/29/CentOS 7