Come Impostare l’Autenticazione HTTP di Base in Apache

0
287

L’autenticazione HTTP di base utilizza username e password per proteggere determinate rotte del tuo sito web. E ‘ comunemente usato per bloccare il pannello di amministrazione e servizi di backend, e—in combinazione con HTTPS—fornisce una buona protezione per le risorse basate sul web.

Come Funziona l’Autenticazione HTTP di Lavoro?

L’autenticazione HTTP di base protezione di determinate risorse o percorsi con un nome utente e una password. Quando un utente tenta di accedere a quella risorsa, il browser si apre una finestra di dialogo che chiede le credenziali prima di inviare qualsiasi cosa oltre. Il pannello di amministrazione della maggior parte dei router di casa sono protetti in questo modo.

Dietro le quinte, quando un utente tenta di accedere a una risorsa protetta, il server invia l’utente WWW-Authenticate intestazione con un 401 Unauthorized risposta. Il client invia il nome utente e la password memorizzata nell’intestazione di Autorizzazione. Il server verifica la combinazione con un elenco di hash della password, e il client è autorizzato a connettersi se corrisponde.

L’autenticazione HTTP di base richiede l’invio di password in chiaro, è necessario disporre di HTTPS/TLS impostare sul server, altrimenti sarete vulnerabili a man-in-the-middle. HTTPS sarà crittografare la connessione e bloccare chiunque tenti di annusare la tua password. È possibile impostare un certificato gratuito con LetsEncrypt, o se stai cercando di proteggere un server privato, creare e firmare uno voi stessi.

Generare un File di Password

Per l’autenticazione HTTP di base di lavoro, avrete bisogno di un file di agire come un database di nomi utente e la password corrispondente. È possibile creare con il htpasswd utilità, che dovrebbe essere installato con l’installazione di Apache tramite il apache2-utils biblioteca. Se non è installato, è possibile installarlo dal vostro gestore di pacchetti della distro; per sistemi basati su Debian, come Ubuntu, che sarebbe:

sudo apt-get install apache2-utils

A quel punto, è possibile generare il file di password con-c flag. Questo comando crea un nuovo file di password e imposta la password per l’utente “admin”:

sudo htpasswd -c /etc/apache2/.htpasswd admin

Verrà richiesto di immettere una password, che verrà codificato e memorizzati in /etc/apache2/.htpasswd. Se si desidera aggiungere un altro utente, lasciare fuori l’-c flag per aggiungere una voce.

In alternativa, è possibile modificare Apache AuthBasicProvider opzione per consentire per i diversi metodi di controllo password, come da database. Tuttavia, l’opzione predefinita di risorse htpasswd file funziona bene nella maggior parte dei casi, soprattutto con pochi utenti.

La Configurazione Di Apache

Ci sono un paio di modi per configurare la password di autenticazione di Apache. Sarete ancora aggiunta di opzioni di configurazione, ma Apache memorizza i file di configurazione in un sacco di posti dove e quale dovrete modificare dipenderà dalla vostra configurazione.

Se si desidera attivare l’autenticazione per tutto, si desidera modificare il file principale di configurazione:

/etc/apache2/apache2.conf

Se invece si desidera autenticare una cartella specifica, si desidera modificare la cartella di file di configurazione in sites-enabled. Per esempio, la configurazione di default è:

/etc/apache2/sites-available/000-default.conf

se il vostro sarà probabilmente nominato in base al percorso. Se devi fare uno nuovo, è possibile copiare questo file config e modificare la DocumentRoot.

Se si dispone di hosting gestito e non hanno accesso alle principali file di configurazione, è molto probabile che la modifica di un .il file htaccess, di solito si trova nella directory principale del tuo sito cartella. Per esempio:

/var/www/html/.htaccess

In ogni caso, ti consigliamo di aprire qualsiasi file che si adatta al vostro caso d’uso, e aggiungere il seguente all’interno di una directory di blocco. Se si sta modificando un .il file htaccess, il blocco di <Directory> non è necessario, solo le linee all’interno:

<Directory “/var/www/html”>
AuthType Basic
AuthName “Contenuto Con Restrizioni”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>

Auth impostazioni verranno applicate a tutta la directory, che è di solito desidera impostare per l’intera radice del documento, anche se si potrebbe applicare solo a una cartella specifica, modifica il percorso:

<Directory “/var/www/html/restricted”>
</Directory>

Questo consentirà di impostare il tipo di autenticazione e punto di Apache verso il file delle password. Non c’è nessun requisito nome di qualcosa di specifico, quindi, è possibile generare diversi file di password per cartelle diverse.

Riavviare Apache per applicare le modifiche:

sudo service apache2 restart

Controllare il protetto del percorso nel tuo browser, e deve essere fermato e ha chiesto una password. Se non è possibile fornire, ti verrà dato un 401 non autorizzato e di errore di accesso negato.

Tenete a mente che le password vengono ancora trasmesse in chiaro, in modo che si desidera abilitare HTTPS per Apache.