Apache: proteggere il contenuto di una directory
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
Oggi vediamo un sistema piuttosto semplice per restringere l’accesso a una data directory disponibile su un server web Apache in modo che ci vengano richieste delle credenziali.
Poniamo il caso di avere a disposizione sul webserver, oltre al sito principale, una o più directory complementari, il cui contenuto debba essere inibito all’utente abituale e reso disponibile solo a chi detiene le credenziali.
/ |-> index.html |-> style.css |-> wordpress |-> protected_files
Nell’esempio qui sopra abbiamo, oltre ai file index e style le directory wordpress
e protected_files
. La prima conterrà tutti i contenuti del sito, la seconda conterrà i file che vogliamo nascondere dalla navigazione pubblica, proteggendoli con una password.
Per impostare una password su Apache sarà sufficiente creare i file .htaccess
e .htpasswd
all’interno della directory protected_files
. All’interno di .htaccess
inseriremo le righe seguenti:
AuthType Basic
AuthName "AREA RIVERVATA"
AuthUserFile /web/htdocs/www.sito.it/home/protected_files/.htpasswd
Require valid-user
Prestare attenzione a specificare il percorso corretto interno al server, non l’indirizzo raggiungibile dall’esterno.
Il file .htpasswd
conterrà lo username e la password (della password verrà salvato solo l’hash). Per generare l’hash esistono svariati siti online, oppure il comando htpasswd dal pacchetto apache-utils (presumibilmente già installato). Per generare il contenuto di .htpasswd
lanciare il seguente comando da terminale:
htpasswd -nbBC 10 pippo pluto
-b
tratta secondo argomento come password (pluto)-n
mostra la password come risposta stdout (non la salva in un file)-B
usa la funzione hashing “bcrypt”-C 10
imposta il costo di bcrypt a 10 (tecnicamente specifica un conteggio iterativo di espansione della chiave in una potenza di due)
In questo esempio creeremo le credenziali con utente “pippo” e password “pluto“. L’output sarà il seguente:
pippo:$2y$10$Vr456iXtzafSd21bK8ZTguSTLRcaBFoOMUgA1ZwLJRuFQFf.6QQCW
Incolliamo l’output così com’è nel file .htpasswd
, carichiamo entrambi i file nella directory “protected_files” e ricarichiamo la pagina.
0 commenti