Download Modsecurity berserta crsnya di modsecurity.org versi modsecurity yang saya gunakan adalah 2.6.6 dan versi crs 2.5.5, untuk yang belum tahu dan mengenai penjelasan lebih lanjut mengenai modsecurity dapat dilihat di ezine rndc
Sebelum proses compile pastikan library libxml2, lua5.1 dan unique_id sudah terinstall dengan baik dan benar
bash-4.1# tar zxvf modsecurity-apache_2.6.6.tar.gz bash-4.1# ./configure bash-4.1# make bash-4.1# make install
Konfigurasi core rule set(CRS)
bash-4.1# tar zxvf modsecurity-crs_2.2.5.tar.gz bash-4.1# mv modsecurity-crs_2.2.5 crs bash-4.1# cd crs bash-4.1# mv modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf bash-4.1# mv crs/ /etc/httpd/
Tambahkan baris berikut pada file /etc/httpd/crs/modsecurity_crs_10_setup.conf
# untuk menghidupkan engine crs SecRuleEngine On
Tambahkan juga baris berikut pada file /etc/httpd/httpd.conf
# untuk meload library libxml2 dan liblua LoadFile /usr/lib/libxml2.so LoadFile /usr/lib/liblua.so.5.1 # untuk meload module modsecurity LoadModule security2_module lib/httpd/modules/mod_security2.so # untuk include core set rule pada modsecurity <IfModule security2_module> Include /etc/httpd/crs/*.conf Include /etc/httpd/crs/base_rules/*.conf </IfModule>
Jika tahap diatas sudah dilakukan langkah berikutnya adalah restart apachenya, untuk melihat log bisa menggunakan perintah berikut
bash-4.1# tail -f /var/log/httpd/error_log
Sekarang kita tinggal melakukan testing pada modsecurity
bash-4.1# cat /var/www/htdocs/insecure.php <?php $secret_file = $_GET['secret_file']; include ($secret_file); ?> bash-4.1#
Berikut perbandingannya
Sebelum
bash-4.1# curl -i http://localhost/insecure.php?secret_file=/etc/passwd HTTP/1.1 200 OK ... root:x:0:0::/root:/bin/bash bin:x:1:1:bin:/bin:/bin/false daemon:x:2:2:daemon:/sbin:/bin/false adm:x:3:4:adm:/var/log:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false ...
Sesudah
bash-4.1# curl -i http://localhost/insecure.php?secret_file=/etc/passwd HTTP/1.1 403 Forbidden Date: Sat, 07 Jul 2012 23:48:02 GMT Server: Apache/2.2.17 (Unix) DAV/2 PHP/5.3.13 Content-Length: 214 Content-Type: text/html; charset=iso-8859-1 ... <h1>Forbidden</h1> <pre>You don't have permission to access /insecure.php ...
good luck…
itu syntaxhiglighter nya gimana ?
caranya ada di sini