Apache è uno dei server web più utilizzati e popolari al mondo, quindi è importante mantenere i tuoi siti web privati da utenti non autorizzati. L’autenticazione Apache può essere configurata per richiedere ai visitatori del sito Web di accedere con un ID utente e una password. Esistono molti modi per proteggere con password le directory in un server Web Apache.
Questo articolo descrive un modo semplice per proteggere con password una directory web in Apache utilizzando un file .htaccess
file.
Nota: questo tutorial è fatto su un server Ubuntu con Apache installato.
Installazione del pacchetto di utilità Apache
Innanzitutto, è necessario installare il apache2-utils
pacchetto che fornisce un’utilità chiamata htpasswd
per creare un file di password.
Puoi installarlo eseguendo il seguente comando:
sudo apt-get install apache2-utils
Configura Apache per consentire l’autenticazione .htaccess
Per impostazione predefinita, Apache non consente l’uso di un file .htaccess in Ubuntu 14.04. Sarà necessario impostare il file di configurazione di Apache per consentire l’autenticazione basata su .htacces.
Puoi farlo modificando il file di configurazione di Apache:
sudo nano /etc/apache2/apache2.conf
Trova la sezione che inizia con Directory "/var/www/html"
e cambia la linea da AllowOverride none
per AllowOverride AuthConfig
Options Indexes FollowSymLinks AllowOverride AuthConfig Require all granted
Salva e chiudi il file.
Crea il file della password
Puoi usare il file htpasswd
utilità della riga di comando per creare un file di password che Apache può utilizzare per autenticare gli utenti. Ora, crea un file .htpasswd nascosto nella directory di configurazione “/ etc / apache2”.
sudo htpasswd -c /etc/apache2/.htpasswd authuser1
Questo ti chiederà di fornire e confermare una password per authuser1.
Se desideri aggiungere un altro utente, tralascia il file -c
litigare con htpasswd
comando.
Ora, per creare un’altra autenticazione per un secondo utente, authuser2:
sudo htpasswd /etc/apache2/.htpasswd authuser2
Puoi vedere il nome utente e la password crittografata per ogni record eseguendo:
sudo cat /etc/apache2/.htpasswd
È necessario concedere l’autorizzazione all’utente “www-data” per poter leggere il file .htpasswd.
sudo chown www-data:www-data /etc/httpd/.htpasswd sudo chmod 0660 /etc/httpd/.htpasswd
Configurare l’autenticazione della password Apache
Devi creare un file “.htaccess” nella directory web che desideri limitare. In questo esempio creerò un file “.htaccess” nella directory “/ var / www / html /” per limitare l’intera root del documento.
sudo nano /var/www/html/.htaccess
Aggiungi il seguente contenuto:
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user
Ecco cosa significa il codice sopra:
- AuthType: Questa opzione definisce il tipo di autenticazione.
- AuthName: Questo è il contenuto che viene visualizzato sulla pagina Web quando viene richiesto il nome utente e la password.
- AuthUserFile: Questa opzione specifica la posizione delle credenziali utente.
- richiedono valid-user: Indica che solo le richieste autenticate con successo possono caricare la pagina.
Salvare e chiudere il file e riavviare Apache per rendere effettive queste modifiche.
sudo /etc/init.d/apache2 restart
Verifica dell’autenticazione tramite password
Ora su una macchina remota, accedi al tuo sito web in un browser web. Ti verranno richiesti un nome utente e una password per accedere alla pagina web.
Se inserisci le credenziali utente corrette, ti sarà consentito accedere al contenuto. Se inserisci le credenziali utente sbagliate o premi “Annulla”, vedrai il file Non autorizzato pagina di errore.
Conclusione
Ora dovresti avere abbastanza conoscenze per configurare l’autenticazione di base per il tuo server web Apache. Ricorda inoltre che la protezione tramite password deve essere combinata con la crittografia SSL in modo che le tue credenziali non vengano inviate al server in testo normale.