Configurazione di ModSecurity

Una vota compilato e installato ModSecurity, è possibile effettuare la configurazione iniziale creando un file modsecurity.conf nella cartella /etc/httpd/conf.d

<IfModule security2_module>
SecRuleEngine On
SecDefaultAction “phase:2,deny,log,status:403″
SecRequestBodyAccess On
SecDebugLog logs/modsec_debug.log
SecDebugLogLevel 0
</IfModule>

SecRuleEngine On attiva l’elaborazione delle regole di ModSecurity, l’elaborazione viene disattivata impostando off come valore mentre usando DetectionOnly come valore è possibile fare in modo che le regole vengano processate senza che vengano eseguite operazioni, una modalità utile per verificare il funzionamento.
SecDefaultAction specifica cosa deve essere fatto quando una richiesta http corrisponde a una regola presente.
In questo caso è stato specificato che la richiesta viene rifiutata con un errore 403 e viene registrata nel file di log.
Le azioni possibili sono le seguenti
pass – La richiesta viene autorizzata e viene continuato il controllo delle altre regole.
allow – In questo caso la richiesta viene accettata e inoltrata al server web, non vengono verificate altre regole.
deny – Interrompe l’elaborazione della richiesta. Viene restituito il valore specificato da status.
status – Specifica il codice da restituire quando una richiesta viene rifiutata.
exec – Esegue un file binario quando la regola corrisponde alla richiesta.
log – Scrive nel file di log.
nolog – Non salva l’informazione nel file di log.
chain – Permette la concatenazione di più regole.
auditlog – L’informazione viene salvata nel file di audit.
noauditlog – L’informazione non viene salvata nel file di audit.

Il valore phase:2 specifica la fase di default in cui vengono processate le regole, ModSecurity divide infatti l’elaborazione delle richieste http in cinque fasi.
1 – REQUEST_HEADERS – Dopo che Apache ha letto gli header della richiesta.
2 – REQUEST_BODY – Dopo che il body è stato letto.
3 – RESPONSE_HEADERS – Dopo che i response header sono stati inviati al client.
4 – RESPONSE_BODY – Dopo che il response body è stato inviato al client.
5 – LOGGING – Prima della registrazione dei log.

La direttiva SecRequestBodyAccess on attiva l’elaborazione del body delle richieste http in modo da permettere l’analisi degli upload effettuati attraverso le richieste POST.
Attivando questa direttiva, ModSecurity salva la richiesta in memoria e l’analizza prima di inoltrarla al server web.
SecDebugLogLevel 0 indica che non vengono salvate informazioni di debug mentre SecDebugLog specifica il file in sui salvare le informazioni di debug quando l’opzione è attiva.