4 069
contributi
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 |