Mod Security

firewallBig

 

Salve a tutti! In uno dei post precedenti, avevamo introdotto il server web Apache, come installarlo e come configurarlo, oggi vi mostreremo come metterlo in sicuro con pochi semplici passaggi!

Sicurezza su un server web
Come molti software, anche in Apache sono presenti dei possibili bug, o malfunzionamenti che ancora non sono stati individuati, il che rende il programma vulnerabile a vari tipi di attacchi informatici, e siccome un web server sfrutta la rete internet bisogna cercare di minimizzare questo pericolo, perché esse potrebbero essere sfruttate per violare il software o semplicemente renderlo inutilizzabile.

Si potrebbe ovviare a questo problema mantenendo Apache aggiornato sempre all'ultima versione, ma questo non garantisce la protezione al 100%, quindi possiamo renderlo più sicuro sfruttando altri software come ad esempio dei firewall.

Un esempio di questa categoria di programmi l'avevamo vista in passato, con “Denyhosts”, che rendeva meno vulnerabile ad attacchi “brute force” il servizio ssh. Invece per il nostro server web Apache installeremo un altro firewall di nome Mod Security.

Cos'è Mod Security?
Mod Security è un modulo di Apache che previene i più comuni attacchi a un server web. Questo modulo è un software open source, se siete interessati ad esempio ai sorgenti, li potete recuperare nel sito web.

Come funziona Mod Security?
Cercheremo di essere brevi e chiari. Lo scopo di questo modulo è in sintesi prevenire attacchi al server web, quindi esso fa in modo di monitorare il traffico in entrata sul nostro server. In poche parole, Mod Security fa passare solo il traffico lecito alle operazioni “normali”, ad esempio una GET di qualche pagina web, ed evitare pacchetti che potrebbero condurre ad un qualche attacco, come ad esempio un attacco “sql injection” o “denial of service”.
Mod Security tiene sotto controllo il traffico attraverso delle regole, che decidiamo noi.
Ad esempio se non vogliamo che venga inviato un pacchetto A al nostro server, allora inseriremo una regola che non faccia passare il pacchetto contenente il dato A: semplice ed efficace!
Queste regole, come detto poco fa, possono essere scritte da noi utilizzando delle espressioni regolari, o in alternativa possiamo usare delle regole che si trovano su internet, oppure acquistarle (il costo della licenza varia dai 400 ai 4000 dollari circa, dipende dal numero di licenze che si vogliono, all'anno!).

Installazione e configurazione
Ora che abbiamo fatto une breve introduzione, procediamo, e iniziamo a mettere al sicuro il nostro web server.
Se utilizziamo Ubuntu o Debian possiamo installarlo direttamente dai repository dando il seguente comando:

 

sudo apt-get install libapache2-mod-security

 

Invece se utilizziamo Fedora o Centos:

 

sudo yum install mod_security

 

In alternativa possiamo decidere anche di compilarlo direttamente dai sorgenti messi a disposizione sul sito, in questo caso installiamo prima i possibili pacchetti che potrebbero essere necessari per la compilazione, quindi le varie dipendenze, ovviamente se non già installati nel sistema:

 

sudo apt-get install httpd mysql mysql-server php php-mysql make autoconf gcc httpd-devel pcre-devel libxml2 libxml2-devel curl curl-devel

 

Dopo di che posizioniamoci nella directori /usr/src

 

cd /usr/src

 

e scarichiamo i sorgenti:

 

wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

 

Ora decomprimiamo il file tar.gz:

 

tar -xzf modsecurity-2.9.0.tar.gz

 

e spostiamoci all'interno della directory modsecurity-2.9.0:

 

cd modsecurity-2.9.0

 

Infine compiliamo i sorgenti:

 

./configure
make
make install

 

Ora che abbiamo installato il modulo procediamo alla configurazione.

Per vedere se il modulo installato è stato caricato, quindi se Apache lo sta utilizzando, digitiamo il seguente comando:

 

sudo apachectl -M | grep security

 

Come abbiamo accennato prima, Mod Security funziona con delle regole. Durante l'installazione, nella directory “/etc/modsecurity”, viene inserito un file di nome “modsecurity.conf-recommended”, ossia un file di regole basi per il modulo. Per utilizzare queste regole dobbiamo rinominare il file, quindi diamo il seguente comando:

 

sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

 

Ora dobbiamo fare in modo di abilitarle, semplicemente editando una riga all'interno di questo file:

 

sudo nano /etc/modsecurity.conf

 

Ed editiamo, o eventualmente aggiungiamo, la seguente riga, scrivendo “On”:

 

SecRuleEngine On

 

Una volta finite le modifiche possiamo riavviare Apache:

 

sudo /etc/init.d/apache2 restart

 

Ci sono molte regole che vengono utilizzate da questo modulo, e si trovano all'interno della directory “/usr/share/modsecurity-crs”. Per utilizzare queste regole andiamo ad aggiungere delle righe al seguente file:

 

sudo nano /etc/apache2/mods-enabled/mod-security.conf

 

e aggiungiamo, se non già presenti, le seguenti righe all'interno dei tag <IfModule security2_module>:

 

Include /etc/modsecurity/*.conf
Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/base_rules/*.conf"

 

Infine riavviamo di nuovo Apache.

In questo caso abbiamo utilizzato delle regole base, come è stato accennato prima, ma possiamo crearne noi delle nuove, o eventualmente acquistarne.

Conclusioni
Oggi abbiamo visto come rendere il traffico web verso il nostro server molto più sicuro, ovviamente questa configurazione è molto “base”, per delle regole più sicure è buona norma affidarsi a professionisti, quindi ad aziende che offrono proprio questo servizio, sul sito di mod security si trovano vari link a questi servizi. Ovviamente questa configurazione che vi abbiamo proposto va bene per un semplice server web per scopi personali come ad esempio un servizio che gira sul nostro Raspberry.

 

FONTI:
- Immagini Joel Garia;
- Sito Mod Security;

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento