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
Access-list e filtro degli accessi web. Metodi di autenticazione degli utenti.