Hardening di un web server Apache: differenze tra le versioni

Riga 305: Riga 305:
# apt-get install libapache-mod-security
# apt-get install libapache-mod-security
</pre>
</pre>
Abilitiamo il modulo appena installato e ci troveremo già con una configurazione minimale funzionante:
<pre>
# a2enmod mod-security
# /etc/init.d/apache2 restart
</pre>
La forza di questo modulo, però, risiede nella sua possibilità di tuning. Creiamo quindi il file <code>/etc/apache2/conf.d/mod_security</code> e impostiamo una prima configurazione di base personalizzata:
<pre>
<IfModule mod_security.c>
# Basic configuration options
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess Off
# Handling of file uploads
# TODO Choose a folder private to Apache.
# SecUploadDir /opt/apache-frontend/tmp/
SecUploadKeepFiles Off
# Debug log
SecDebugLog /var/log/apache2/modsec_debug.log
SecDebugLogLevel 0
# Serial audit log
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus ^5
SecAuditLogParts ABIFHZ
SecAuditLogType Serial
SecAuditLog /var/log/apache2/modsec_audit.log
# Maximum request body size we will
# accept for buffering
SecRequestBodyLimit 131072
# Store up to 128 KB in memory SecRequestBodyInMemoryLimit 131072
# Buffer response bodies of up to # 512 KB in length SecResponseBodyLimit 524288
</IfModule>
In questo primo template di default abbiamo impostato alcune regole:
* ''SecFiterEngine (On|Off)'': abilita o disabilita il modulo
* ''SecFilterCheckUrlEncoding (On|Off)'': controlla se i caratteri speciali vengono encodati prima di essere passati all'URL
* ''SecFilterCheckUnicodeEncoding (On|Off)'': controlla se l'encoding Unicode è valido
* ''SecFilterForceByteRange'':  forza le richiest dentro un range predefinito di bytes. Può aiutare a prevenire attacchi stack overflow. Il range può essere impostato da 0 a 255.
* ''SecServerSignature'': cambia la signature nella risposta agli header. Perchè funzioni è necessaria la direttiva Apache <code>ServerTokens Full</code>.
* ''SecAuditEngine (On|Off|RelevantOnly)'': abilita o disabilita il loggind di mod-security. RelevantOnly logga solo le richieste che coincidono con una regola impostata.
* SecAuditLog /path/to/audit_log: define the file where mod-security will write its logs.
* ''SecFilterDebugLog /path/to/debug_log'': il percorso del log di debug.
* ''SecFilterDebugLevel (0-9)'': mod-security ha 10 livelli di debug: 0 (non vengono loggate informazioni di debug) - 9 (viene loggato tutto).
* ''SecFilterScanPost (On|Off)'': di default, mod-security scansiona solo le richieste GET datas. Abilitando questa direttiva gli faremo scansionare anche i dati POST