Hardening di un web server Apache: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
Riga 16: Riga 16:
</Directory>
</Directory>
</pre>
</pre>
E' poi possibile "aprire" per directory e funzionalità selezionate, la possibilità di fare l'override della conf generale tramite i file ''.htaccess'' locali.
È poi possibile "aprire" per directory e funzionalità selezionate, la possibilità di fare l'override della conf generale tramite i file ''.htaccess'' locali.
Le diverse opzioni di <code>AllowOverride</code> controllano quali direttive possono essere definite nei file ''.htaccess'': <code>All, AuthConfig, FileInfo, Indexes, Limit, Options, None</code>.
Le diverse opzioni di <code>AllowOverride</code> controllano quali direttive possono essere definite nei file ''.htaccess'': <code>All, AuthConfig, FileInfo, Indexes, Limit, Options, None</code>.


Riga 46: Riga 46:
#AddHandler server-parsed .shtml
#AddHandler server-parsed .shtml
</pre>
</pre>
per cui se si vogliono usare dei Server Side Includes o degli script CGI al di fuori della directory predefinita con la direttiva <code>ScriptAlias /cgi-bin/ "@@ServerRoot@@/cgi-bin/"</code>, queste righe vanno scommentate.
per cui se si vogliono usare dei Server Side Includes o degli script CGI al di fuori della directory predefinita con la direttiva <code>ScriptAlias /cgi-bin/ "@@ServerRoot@@/cgi-bin/"</code>, queste righe vanno decommentate.


=== Disabilitare l'accesso pubblico a server-info e server-status ===
=== Disabilitare l'accesso pubblico a server-info e server-status ===
Riga 65: Riga 65:
#</Location>
#</Location>
</pre>
</pre>
Se si vogliono visualizzare server-status e server-info, scommentare queste righe e specificare i domini o gli IP da cui è permesso visualizzarli.
Se si vogliono visualizzare server-status e server-info, decommentare queste righe e specificare i domini o gli IP da cui è permesso visualizzarli.


===Disabilitare il file listing in directory senza index.html (o analoghi nomi di file predefiniti) ===
===Disabilitare il file listing in directory senza index.html (o analoghi nomi di file predefiniti) ===
Riga 75: Riga 75:
</Location>
</Location>
</pre>
</pre>
Per disabilitare il directory listing si può anche direttamente rimuovere il caricamento (o la compilazione) del modulo ''mod_autoindex''; se invece si vuole abilitarlo, ma al contempo escludere dal listing dei file potenzialmente sensibili si può usare una direttiva come:
Per disabilitare il directory listing si può anche direttamente rimuovere il caricamento (o la compilazione) del modulo ''mod_autoindex''; se invece si vuole abilitarlo, ma al contempo escludere dal listing dei file potenzialmente sensibili, si può usare una direttiva come:
<pre>
<pre>
IndexIgnore .??* *.bak *.swp *# HEADER* README* RCS
IndexIgnore .??* *.bak *.swp *# HEADER* README* RCS
Riga 167: Riga 167:
# aptitude install libapache2-mod-evasive
# aptitude install libapache2-mod-evasive
</pre>
</pre>
Durante l'installazione del modulo il servizio Apache sarà riavviato e il modulo automaticamente caricato al successivo riavvio. E' possibile verificare il corretto caricamento del modulo con:
Durante l'installazione del modulo il servizio Apache sarà riavviato e il modulo automaticamente caricato al successivo riavvio. È possibile verificare il corretto caricamento del modulo con:
<pre>
<pre>
# find /etc/apache2/ | xargs fgrep -nH evasive
# find /etc/apache2/ | xargs fgrep -nH evasive
Riga 186: Riga 186:
# /etc/init.d/apache2 restart
# /etc/init.d/apache2 restart
</pre>
</pre>
E possibile testare il corretto funzionamento del modulo con il seguente script, installato insieme al modulo stesso:
È possibile testare il corretto funzionamento del modulo con il seguente script, installato insieme al modulo stesso:
<pre>
<pre>
# perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
# perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Riga 296: Riga 296:


== Il modulo <code>mod_security</code> di Apache ==
== Il modulo <code>mod_security</code> di Apache ==
Il modulo di Apache <code>mod_security</code> e’ un modulo che permette di loggare i piu’ comuni attacchi ad Apache come XSS, remote command execution, file disclosure e tutto quello che puo’ essere considerato dannoso nei confronti di un povero web server. Il sito ufficiale del modulo è http://www.modsecurity.org , ma per fortuna esiste un pacchetto Debian, presente in Squeeze e nei Backport di Lenny.<br/>
Il modulo di Apache <code>mod_security</code> è un modulo che permette di loggare i più comuni attacchi ad Apache come XSS, remote command execution, file disclosure e tutto quello che può essere considerato dannoso nei confronti di un povero web server. Il sito ufficiale del modulo è http://www.modsecurity.org , ma per fortuna esiste un pacchetto Debian, presente in Squeeze e nei Backport di Lenny.<br/>
Per installarlo è quindi sufficiente:
Per installarlo è quindi sufficiente:
* Lenny:
* Lenny:
Riga 353: Riga 353:
* ''SecFilterCheckUrlEncoding (On|Off)'': controlla se i caratteri speciali vengono encodati prima di essere passati all'URL
* ''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
* ''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.
* ''SecFilterForceByteRange'':  forza le richieste 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>.
* ''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.
* ''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.
* SecAuditLog /path/to/audit_log: define the file where mod-security will write its logs.
Riga 367: Riga 367:
e riavviamo Apache:
e riavviamo Apache:
<pre>
<pre>
/etc/init.d/apache restart
# /etc/init.d/apache restart
</pre>
</pre>
Per verificare il corretto funzionamento del modulo appena installato è sufficiente aprire il file di log di Apache:
Per verificare il corretto funzionamento del modulo appena installato è sufficiente aprire il file di log di Apache:
Riga 401: Riga 401:
e riavviamo Apache:
e riavviamo Apache:
<pre>
<pre>
/etc/init.d/apache restart
# /etc/init.d/apache restart
</pre>
</pre>
=== Il modulo <code>mod_security</code> e Drupal ===
=== Il modulo <code>mod_security</code> e Drupal ===
6 999

contributi