Proteggere cartella con password htaccess (esempio)

DiFabio

Proteggere cartella con password htaccess (esempio)

proteggere cartella con password htaccess

proteggere cartella con password htaccess

Quante volte abbiamo trovato nel nostro access_log centinaia, se non addirittura migliaia, di tentativi di accesso alla nostra pagina di amministrazione, per cercare di “bucare” il nostro sito? Con il passare del tempo gli hacker (o presunti tali) sono sempre più sofisticati, così come strumenti a loro disposizione. Ma per ovviare questo problema, abbiamo un semplice strumento a disposizione di tutti gli utenti che utilizzano un apache come webserver. Questo strumento di semplice configurazione è la protezione di una cartella con una password tramite l’adeguata configurazione del file .htaccess.

proteggere cartella con password htaccess

 

Proteggere cartella con password htaccess. Alla base di tutto c’è appunto il file .htaccess che è un semplice file di testo che permette di personalizzare e quindi sovrascrivere (dove possibile) le configurazioni presenti nel file di configurazione (di solito denominato httpd.conf ) del webserver apache.

Creiamo il file .htaccess

Per prima cosa, attraverso riga di comando (oppure tramite FTP se preferite), dobbiamo andarci a posizionare nella cartella che vogliamo proteggere. Facciamo finta che il nostro sito web www.miosito.com sia istallato sul nostro server nella cartella /var/www/sito e che la cartella da proteggere sia www.miosito.com/ADMIN istallata su /var/www/sito/ADMIN (ovviamente ognuno di noi ha esigenze diverse. Sarà sufficiente cambiare i path, adeguandoli alle nostre necessità, in base a quale sia il nome della nostra cartella) . Nel nostro caso di esempio lanciamo il comando:

# cd /var/www/sito/ADMIN/

Questa è la cartella da proteggere ed è qui che dobbiamo creare il nostro file .htaccess .

Possiamo crearlo direttamente tramite il comando ‘vi‘ oppure possiamo crearlo in locale per poi trasferirlo tramite ftp nella nostra cartella /var/www/sito/ADMIN/ . Nella sostanza non cambia. L’importante è il contenuto del file htaccess. Vediamo quali direttive deve contenere il file affinché si possa proteggere la nostra cartella.

Il nostro file dovrà contenere quanto segue (più avanti spiegherò riga per riga in modo che possiate poi procedere alla personalizzazione):

AuthType Basic
AuthName “restricted area”
AuthUserFile /var/www/.htpasswd-users
require valid-user

Vediamo le voci modificabili:

  • AuthName
    E’ il messaggio di testo che appare all’utente che prova ad accedere alla cartella protetta (Qui puoi vedere un esempio di una cartella protetta da password). Nel nostro esempio il messaggio che appare sarà “restricted area”, ma potete personalizzarlo a vostro gusto, come volete.
  • AuthUserFile /var/www/.htpasswd-users
    Questa è la parte fondamentale della configurazione (e sulla quale ci soffermeremo a breve) in quanto specifica qual’è il file, all’interno del nostro file system, che conterrà gli username abilitati all’accesso, con le rispettive password criptate. Questo files può essere chiamato a vostro piacimento. Di default il suo nome è .htpasswd . Noi lo abbiamo chiamato .htpasswd-users. Il nostro file .htpasswd è posizionato, all’interno del nostro file-system, nel path /var/www/.htpasswd-users . E’ buona norma posizionare il file .htaccess in un path al di fuori della nostra Document Root in modo che questo non possa essere raggiunto via web.

Da quest’ultima riga (AuthUserFile) capiamo quindi che i files necessari per proteggere il nostro sito sono 2:

.htaccess contenuto nella cartella da proteggere

.htpasswd-users (o .htpasswd, o qualunque altro nome abbiamo scelto) che contiene user e password degli utenti che potranno accedere alla nostra area protetta.

 Creiamo il file .htpasswd

Il file .htpasswd a differenza del .htaccess non contiene direttive, ma soltanto una lista di stringhe che appaiono più o meno nel modo seguente:

amministratore:t6g9kRVDz9l60
demouser:h6H69JUT69H6t

Vediamo come creare gli utenti e le loro password.

Il modo più sicuro per creare le nostre credenziali è quello di lanciare il comando htpasswd da riga di comando. Ci sono un paio di opzioni utili:

  1. Creazione del del file .htpasswd e configurazione del primo utente:
    #htpasswd -c /var/www/.htpasswd-users amministratore
    Dopo il lancio di questo comando verrà creato il file /var/www/.htpasswd-users e verrà richiesta la password da impostare per creare l’utente “amministratore”.
  2. Aggiunta di un utente su un file già esistente o modifica della password di un utente:
    #htpasswd /var/www/.htpasswd-users demouser
    (aggiunge l’utente demouser al file /var/www/.htpasswd-users . Come noterete, rispetto al comando precedente, manca l’opzione “-c” che serve a creare il file. Senza questa opzione si va a modificare un file .htpasswd già esistente)
    Oppure:
    #htpasswd /var/www/.htpasswd-users amministratore
    (modifica la password per l’utente amministratore che già esistente all’interno del nostro file /var/www/.htpasswd-users)

C’è una seconda opzione per creare il vostro file delle password. Questa opzione si rende particolarmente utile qualora abbiate accesso al vostro server tramite FTP (o SFTP) e non tramite shell ssh. Senza accesso via shell (e quindi alla riga di comando) non sarete in grado di lanciare il comando htpasswd per cui non potrete generare la password. Per aggirare questo problema avete la possibilità di creare il vostro .htpasswd online, via web. Vi verrà chiesto lo username e la rispettiva password. Nel nostro test abbiamo creato l’utente amministratori con password ciaociao (non usate mai una password del genere 😀 ). Il risultato sarà il seguente: administrator:$apr1$836PGuay$Ep74onHwj5pKvs0INsYR20 .
A questo punto non dovrete fare altro che aprire il file .htpasswd (nel nostro esempio in /var/www/.htpasswd-users demouser) e incollarci dentro quanto appena creato.
create htpasswd

Abbiamo terminato le modifiche e se avete fatto tutto per bene, richiamando http://www.miosito.it/ADMIN dovrebbe apparire la schermata in cui digitare lo username e la rispettiva password scelta precedentemente.

Spero la guida vi sia utile.

Se avete dubbi o domande, non esitate a commentare 🙂

Buon Lavoro!

Info sull'autore

Fabio administrator

Appassionato di tecnologia, lavoro nel mondo dell'informatica dal 1999. Mi diletto con PHP e MYSQL e ultimamente mi sono appassionato al mondo SEO ...più per sfida che per necessità. In questo blog voglio condividere con gli utenti quello che imparo, sperando che altri possano trarne "profitto" .

1 commento finora

Configurare apache su Mac OS X 10.11 El CapitanPubblicato il2:43 pm - Ott 1, 2015

[…] configurazione offre la possibilità di proteggere web le pagine tramite una password. Se siete interessati a questa funzionalità, potete leggere l’apposita […]

Lascia una risposta