2012
MAGGIO
18
VISITE
13606
COMMENTI
VALUTAZIONE

Proteggiamo il nostro server Apache con ModSecurity

mod_security è un modulo per apache che consente di bloccare i più comuni tentativi d'attacco di tipo sql injection, code injection, cross-site scripting e simili. 

Proteggiamo il nostro server Apache con ModSecurity

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?
FORSE TI INTERESSA ANCHE
COMMENTI
NEWSLETTER
Inserisci il tuo indirizzo e.mail ed iscriviti alla Newsletter NEEXA per ricevere in automatico aggiornamenti e ultime notize.
e-mail
SOCIAL