Autenticazione HTTP Digest con Squid

By | ottobre 9, 2016

Recentemente, abbiamo visto come utilizzare Squid come Reverse Proxy, sapendo che l’obiettivo primario del prodotto è quello di essere usato come Proxy Internet. In questa guida voglio proporvi una delle 3 diverse autenticazioni per Squid che utilizzo maggiormente: l’autenticazione http digest. l’http digest è un modo semplice per gestire le utenze tramite un semplice file di testo e le password degli utenti, cryptate in MD5. Comodo per la gestione di poche utenze e per non appesantire troppo Squid. Le autenticazioni posso essere utilizzate sia se si utilizza Squid come Proxy Internet sia come Reverse Proxy. 

Se utilizziamo Squid come Reverse Proxy potrebbe essere utile per proteggere pagine o directory attraverso autenticazione, ad esempio per proteggere l’accesso ad un sotto dominio, ad una pagina come www.miosito.com/wp-admin ecc. Mentre se utilizziamo Squid come Proxy Internet possiamo gestire l’accesso al proxy tramite username e password.

http_digest_squid

Vediamo come utilizzare questo metodo di autenticazione con Squid.

Creiamo l’utenza attraverso il comando:

# htdigest -c /etc/squid/user_squid WEB-PROXY <username>

sostituendo <username> con l’username che vogliamo inserire, e WEB-PROXY con il realm che vogliamo associare.

l’opzione “-c” crea il file /etc/squid/user_squid. Se vogliamo aggiungere un ulteriore utente il comando da utilizzare è:

# htdigest /etc/squid/user_squid WEB-PROXY <username2>

lanciato il comando ci verrà chiesto di inserire la password.

create le nostre utenze, modifichiamo il file di configurazione di Squid con il nostro editor preferito:

# vim /etc/squid/squid.conf

e aggiungiamo all’inizio del file, le righe:

auth_param digest program /usr/lib/squid/digest_pw_auth -c /etc/squid/user_squid
auth_param digest children 5
auth_param digest realm WEB-PROXY
uth_param basic credentialsttl 1 minute
auth_param basic casesensitive off

aggiungiamo l’acl:

acl users proxy_auth REQUIRED
http_access allow uesrs

in questo modo abiliteremo tutta la navigazione internet solo agli utenti  autenticati. Mentre se vogliamo autenticare solo alcuni siti utilizziamo

acl users proxy_auth REQUIRED
acl authurl url_regex -i "/etc/squid/authurl.txt"
http_access allow authurl users
http_access allow all

dove inseriremo nel file /etc/squid/authurl.txt tutti i siti accessibili agli utenti  che hanno username e password. Utile per bloccare ad esempio facebook o siti interni a tutti e abilitare la visione solo agli utenti che hanno user password.

La stessa configurazione è possibile utilizzarla per Reverse Proxy, in questo caso nel file authurl.txt inseriremo le pagine o sotto domini che vogliamo proteggere con username e password ad esempio:

wp-admin
wp-login.php
phpmyadmin.miodominio.com

completata la nostra configurazione riavviamo squid o ricarichiamo la configurazione con il comando:

# squid -k reconfigure

Ora non ci rimane altro che visualizzare i log di squid e verificare che l’autenticazione funzioni.

La prossima volta vedremo come utilizzare utenze in db mysql con squid.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *