Pratica: Controllare l'accesso a determinate directory

In questa esercitazione si applicano le nozioni apprese riguardo all'accesso a date directory da IP specifici e tramite login e password.
Si verifica praticamente un possibile uso dell'override della configurazione generale.
Dopo ogni punto provare a testare la configurazione data, riavviando Apache e usando un browser mentre si tengono sotto controllo i file di log.

1- Creare la directory /home/www/private e configurare httpd2.conf per permettere l'accesso a questa directory solo dal localhost (127.0.0.1). Creare un semplice file html chiamato /home/www/private/test.htm, provare a verificare con un browser l'accesso al file usando come URL: http://127.0.0.1/private/test.htm e http://PROPRIO.IP.ETH0/private/test.htm.
Se Apache da un messaggio di errore al riavvio con la nuova configurazione, ricordarsi che le direttive inserite sono fornite dal modulo mod_access.
2- Creare il file di password standard per Apache /etc/httpd/accessi inserendo l'utente mario con password mario.
3- Modificare la configurazione per permettere l'accesso a /home/www/private solo da utenti autenticati tramite il file /etc/httpd/accessi. Tenere presente che l'autenticazione normale tramite login e password gestita dal modulo mod_auth e che Apache deve poter avere accesso in lettura al file /etc/httpd/accessi.
4- Modificare la configurazione in modo tale da permettere l'accesso da localhost senza password o da qualsiasi altro IP tramtie password (HINT: Si deve solo aggiungere una direttiva)
5- Aggiungere a  /etc/httpd/accessi l'utente luigi con password luigi e, tramite la modifica del file di override /home/www/external/.htaccess2 permettere l'accesso alla directory /home/www/external solo all'utente autenticato com luigi.

Informazioni collaterali utili
Un file html minimo pu essere anche un normale testo di questo genere:
Testo di esempio

1- mkdir /home/www/private ; chown apache:apache /home/www/private (Se apache lo user con cui viene lanciato httpd). Poi aggiungere al file di configurazione:
<Directory /home/www/private>
order deny,allow
deny from all
allow from 127.0.0.1
</Directory>

Perch l'autenticazione funzioni bisogna abilitare il modulo mod_access.
Assicurarsi che sia presente e non sia commentata la riga LoadModule access_module modules/mod_access.so.
Se si lavora con Apache 1.3, devono essere presenti le righe:
LoadModule access_module libexec/mod_access.so
AddModule mod_access.c

2- htpasswd -c /etc/httpd/accessi mario. Poi digitare mario alla richiesta di password.
3- Aggiungere le seguenti righe ad httpd2.conf:
<Directory /home/www/private>
AuthName "Prova Apache"
AuthType Basic
AuthUserFile /etc/httpd/accessi
require valid-user
</Directory>

Assicurarsi che sia presente e non sia commentata la riga LoadModule auth_module modules/mod_auth.so.
Se si lavora con Apache 1.3, devono essere presenti le righe:
LoadModule auth_module libexec/mod_auth.so
AddModule mod_auth.c
.
Assicurarsi anche cha Apache abbia diritti in lettura su /etc/httpd/accessi: chgrp apache /etc/httpd/accessi ; chmod 750 /etc/httpd/accessi
4- Fare in modo che le direttive inserite nel punto 1 e 3 siano all'interno dello stesso Directory container, poi aggiungerci: Satisfy any
5- Digitare su shell htpasswd /etc/httpd/accessi luigi per aggiungere l'utente luigi (scrivere, quando richiesta, la relativa password). Editare poi /home/www/external/.htaccess2 e scriverci:
AuthName "Prova Apache"
AuthType Basic
AuthUserFile /etc/httpd/accessi
require user luigi

Privacy Policy