La sicurezza è uno degli aspetti fondamentali che un buon sistemista non deve assolutamente trascurare, sopratutto per quanto riguarda tutti quei servizi esposti pubblicamente sulla rete, primo tra tutti il server Web.
Lo scopo di questa guida è dunque, cercare di trovare un compromesso tra affidabilità prestazioni e sicurezza, per far girare i nostri applicativi sulla rete (CMS, Blog, CRM, Script di ogni tipo..) cercando di impedire o almeno di arginare i classici attacchi del tipo XSS, SQL Injection, Code Injection, Trojan, Spambot ed Exploit di ogni tipo.
Per prima cosa installaremo il nuovo Modsecurity 2.5, pieno zeppo di novità, vi rimando direttamente al link per maggiori informazioni, cosi da filtrare granparte degli attacchi a livello Session (che per lo standard ISO/OSI corrisponde al livello 5) quindi direttamente da Apache2.
:
Per iniziare installiamo le librerie necessarie a mod-security2:
Ora possiamo scaricare, decomprimere ed installare l'applicazione:
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.0.tar.gz
tar zxf modsecurity-apache_2.5.0.tar.gz
cd modsecurity-apache_2.5.0/apache2
./configure && make && make install
Se la compilaione è andata a buon fine, trovete la libreria in /usr/lib/apache2/modules/mod_security2.so
:
Ora passiamo alla fase di configurazione di Apache2, prima di tutto dobbiamo creare il file di configurazione del modulo, per far caricare mod-security2 all'avvio del server Web
Creare il file: /etc/apache2/mods-available/mod-security2.load
Con un qualsiasi editor aggiungete le seguenti righe al file:
LoadFile /usr/lib/liblua5.1.so.0
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Ora non resta che abilitare il modulo, usando i tool di Apache:
a2enmod unique-id
A questo punto dobbiamo istruire Apache su quali regole di mod-security caricare e dove trovare i file, quindi creiamo il file: /etc/apache2/conf.d/mod-security2.conf con questo contenuto:
Include /etc/modsecurity2/*.conf
In questo modo Apache caricherà i file di configurazione con le regole di Modsec2 solamente se è abilitato, per coerenza con il layout standard del FS conviene salvare le regole in /etc, ma nulla vieta di scegliere il path più opportuno per le vostre esigenze.
Quindi bisogna creare le directory necessarie:
mkdir /etc/modsecurity2/logs
touch /etc/modsecurity2/logs/modsec_audit.log
touch /etc/modsecurity2/logs/modsec_debug.log
Ora copiamo le regole "core" gia fornite con il package:
Arrivati a questo punto, abbiamo ancora bisogno di fare un'altra piccola modifica al file /etc/modsecurity2/modsecurity_crs_10_config.conf, modificando:
SecAuditLog logs/modsec_audit.log
in
SecDebugLog /etc/modsecurity/logs/modsec_debug.log
SecAuditLog /etc/modsecurity/logs/modsec_audit.log
Finito! Ora possiamo riavviare Apache2 e controllare che tutto funziona correttamente:
Per controllare se Modsecurity è stato caricato correttamente:
[Wed Mar 05 15:26:12 2008] [notice] ModSecurity for Apache/2.5.0- (http://www.modsecurity.org/) configured.
Se avete questo Output allora l'installazione è andata a buon fine.
:
A questo punto, non vi resta che leggervi la documentazione ufficiale:
http://www.modsecurity.org/documentation/index.html
Ed iniziare a sviluppare dalle regole base che abbiamo copiato, delle regole che meglio si adattano alle vostre applicazioni.
Ritengo che Modsecurity sia un un modulo fondamentale che non debba mai mancare su dei server in produzione, sopratutto quando sui server ci sono molti Virtualhost con script di ogni tipo che per natura possono avere gravi problemi di sicurezza che possono compromettere l'intero sistema.
Extra:
Qui http://gotroot.com/ invece si possono trovare tante altre regole e molta documentazione.
Riferimenti:
http://www.vinno.net/linux/server/how-to-install-mod-security-2
http://gotroot.com/


