Si tratta di un web application firewall opensource che utlizza un sistema di "regole" modulare. Queste regole possono essere scaricate e aggiornate da vari repository sia a pagamento che free. Inoltre è possibile "scrivere" le proprie regole ed eccezioni a seconda dell'ambiente dove verrà utilizzato mod_security.
Le potenzialità di questo modulo sono enormi e già senza troppe configurazioni riesce a fare un ottimo lavoro prevenendo oltre il 70% degli attacchi più comuni verso il nostro web server.
Vediamo come installare e configurare questo modulo.
Partiamo da una configurazione "base" con sistema Centos, prepariamo un ambiente standard LAMP grazie a yum:
yum install httpd mysql mysql-server php php-mysql
yum install make autoconf
yum install gcc httpd-devel pcre-devel
yum install libxml2 libxml2-devel curl curl-devel
Ovviamente se alcuni sofware sono già presenti (magari compilati) nel nostro sistema omettiamo l'installazione di questi pacchetti.
Scarichiamo l'ultima release di modsecurity (usiamo /usr/src come directory per scaricare e compilare i sorgenti)
cd /usr/src
wget http://www.modsecurity.org/download/modsecurity-apache_2.6.5.tar.gz
tar zxvf modsecurity-apache_2.6.5.tar.gz
cd modsecurity-apache_2.6.5
Configuriamo, compiliamo ed installiamo mod_security
./configure
make
make install
Possiamo utilizzare la configurazione standard del modulo per apache, basta copiare il file reccomended nella directory inclusa da apache per caricare le configurazioni "extra"
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
Impostiamo apache affinchè carichi i moduli mod_security e unique_id,
aggiungiamo la seguente riga nella sezione dedicata al caricamento dei moduli nel file httpd.conf di apache :
LoadModule security2_module modules/mod_security2.so
E abilitiamo mod_unique_id decommentando la riga corrispondente
LoadModule unique_id_module modules/mod_unique_id.so
A questo punto abbiamo installato mod_security e configurato apache, non resta che scaricare ed installare le regole "core rule set" da
qui
cd /usr/src
wget http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.4.tar.gz/download
tar zxvf modsecurity-crs_2.2.4.tar.gz
Creiamo una directory per le nuove regole da attivare
mkdir /etc/httpd/modsecurity-crs
E copiamo le regole appena scaricate, sia le base che le optional
cd /etc/httpd/modsecurity-crs
cp -R /usr/src/modsecurity-crs_2.2.4/base_rules/modsecurity_* .
cp -R /usr/src/modsecurity-crs_2.2.4/optional_rules/modsecurity_* .
A questo punto editiamo il file di configurazione di mod_security abilitando il modulo e attivando le regole
vi /etc/httpd/conf.d/modsecurity.conf
Aggiungere in testa
#Attiva modsecurity
<IfModule mod_security2.c>
Aggiungere in coda
Include /etc/httpd/modsecurity-crs/*.conf
</IfModule
>
Facciamo ripartire apache
/etc/init.d/httpd restart
Verifichiamo dai log di apache che non vi siano errori e che il modulo sia stato caricato correttamente.
Bene, abbiamo configurato il nostro ambiente.
Le versioni dei software e i comandi di sistema descritti in questo articolo sono puramente indicativi.
Cosa ne pensi di questo articolo?