In questo articolo andremo a vedere come poter configurare dei VirtualHost con autenticazione sulla piattaforma Apache.
Senza soffermarsi sul superfluo andiamo a mettere mano alla macchina, iniziando con l’installazione di Apache, pensata su una distribuzione Ubuntu:
michele@michele-mmul ~ $ sudo apt-get install apache2
Attendiamo il completamento ed al termine è possibile fare un test del suo funzionamento digitando sulla URL del browser l’indirizzo ip locale (nel nostro caso è 192.168.20.99): se tutto è andato a buon fine vedremo la pagina: It Works.
Andremo quindi a configurare due VirtualHost:
- testsito1.it
- testsito2.it
Andiamo a editare il file /etc/apache2/sites-available/000-default.conf.
La struttura dei VirtualHost sarà la seguente:
- testsito1.it avrà la DocumentRoot in /var/www/sito1
- testsito2.it avrà la DocumentRoot in /var/www/sito2
Per iniziare creo le directory con all’interno i file index.html
# cd /var/www/
# mkdir sito1
# cd sito1/
# echo “Sei su sito1.it” > index.html
# cd /var/www/
# mkdir sito2
# cd sito2/
# echo “Sei su sito2.it” > index.html
Adesso strutturiamo i VirtualHost:
ServerAdmin michele@gmail.com
ServerName testsito1.it
DocumentRoot /var/www/sito1
ErrorLog /var/log/error.log
Customlog /var/log/custom.log common
ServerAdmin nicola@gmail.com
ServerName testsito2.it
DocumentRoot /var/www/sito2
ErrorLog /var/log/error2.log
Customlog /var/log/custom2.log common
Sui 2 percorsi della DocumentRoot inseriamo la index.html:
echo "Sei su sito 1" > /var/www/sito1/index.html
echo "Sei su sito 2" > /var/www/sito2/index.html
Salviamo le modifiche al file e riavviamo il demone:
service apache2 reload
Non resta che modificare il file hosts relativo della macchina locale da cui fare i test editandolo nel seguente modo:
192.168.20.99 testsito1.it
192.168.20.99 testsito2.it
Da browser possiamo digitare i seguenti URL per vedere la corretta eseguzione:
http://testsito1.it
http://testsito2.it
Se vogliamo possiamo eseguire il browser anche tramite Shell, previa installazione di links:
links http://testsito1.it
links http://testsito2.it
Per eliminare il messaggio fastidioso che ci viene posto ogni volta che riavviamo il demone apache andiamo ad inserire nella struttura della creazione dei VirtualHost la seguente stringa:
ServerName localhost
Detto questo andiamo a creare una directory dentro /var/www/sito2 che chiameremo dati, con lo scopo che solamente tramite autenticazione si riesce a leggere il contenuto.
mkdir /var/www/sito2/dati
echo “Autenticazione corretta” > /var/www/sito2/dati/index.html
Modifichiamo la struttura del VirtualHost di testsito2.it nel seguente modo:
ServerName testsito2.it
DocumentRoot /var/www/sito2
ErrorLog /var/log/error2.log
Customlog /var/log/custom2.log common
AuthName "Inserire i dati di Login"
AuthType basic
AuthUserFile /etc/apache2/.login
Require valid-user michele,raoul,gabriele
La voce AuthUserFile va a leggere il contenuto del file .login verificando la corretta login, mentre Require valid-user stabilisce quali utenti possono accedere alla directory.
Nota importante è che Il file .login non va creato manualmente ma tramite il comando htpasswd previa installazione tramite il seguente comando:
sudo apt-get install apache2-utils
Procediamo alla creazione del file:
htpasswd -cm /etc/apache2/.login michele
htpasswd -m /etc/apache2/.login raoul
htpasswd -m /etc/apache2/.login gabriele
-c Crea il file .login
-m Cifra la password in MD5
Il file .login sarà cosi strutturato:
michele:$apr1$Ky8DE4Ei$taTmCVCzMvx1gMMHOSUw70
raoul:$apr1$eEg1wJBk$RSHExk.EF2H/NNN02bB41.
gabriele:$apr1$1x7MDQFI$wLcthPLRX7uO5Vd4HguHV/
Riavviamo il demone apache ed eseguendo sul Browser il seguente link avremo davanti una schermata di login:
http://testsito2.it/dati
Lascia un commento