Hardening di un web server Apache: differenze tra le versioni

Riga 19: Riga 19:
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>.


=== Usare .htaccess per limitare l'accesso a cartelle e file ===
=== Usare .htaccess per limitare l'accesso a directory e file ===


In alcune circostanze può essere necessario limitare l'accesso ad una o più sottodirectory del nostro sito.<br/>
Per gestire tali limitazioni di accesso possiamo intervenire sulle singole directory mediante il file <tt>.htaccess</tt> (il quale avrà valore unicamente dentro la directory in cui è contenuto).
<br/>
Un semplice esempio di file <tt>.htaccess</tt> è:
<pre>
<limit GET POST>
order deny, allow
deny from all
allow from .dominio1.com
allow from .dominio2.com
allow from 123.123.123.123
<limit>
</pre>
Lo scopo del codice qui sopra è limitare l'accesso a tutte le chiamate GET e POST (deny from all), tranne quelle dei domini (dominio1.com, dominio2.com) e dell'IP (123.123.123.123) esplicitamente indicati:
* abbiamo impostato la direttiva limit per tutte le chiamate GET e POST;
* abbiamo definito l'ordine (order deny, allow) di inserimento delle nostre istruzioni: prima deny e poi allow
* abbiamo negato l'accesso a tutti (deny from all) tranne...
* ... agli hostname e gli IP indicati con allow from ...;
Ovviamente avremmo potuto fare anche la cosa opposta, ovvero consentire l'accesso a tutti tranne a singoli domini, IP o classi di IP.
Volendo è possibile agire, oltre che su intere cartelle, anche su singoli file o gruppi di file (ad esempio tutti i file con una data estensione). Ad esempio:
<pre>
<FilesMatch \.(inc|conf)>
order allow, deny
deny from all
</FilesMatch>
</pre>
impedisce a chiunque (deny from all) l'accesso a file che finiscono con .inc o .conf (estensioni tipiche dei file di configurazione).


=== Impedire la lettura via Web a file ''.htaccess'' ===
=== Impedire la lettura via Web a file ''.htaccess'' ===