Autenticare Squid Proxy Server su un server Radius

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"
Debian 8 "jessie"

Introduzione

Se nella nostra organizzazione è già presente un server Radius per gestire le utenze e/o le autenticazioni sulla rete, può essere comodo fare in modo che anche il nostro Proxy Server Squid verifichi le autenticazioni collegandosi al server Radius, sollevandoci quindi dal bisogno di gestire una seconda lista di credenziali.

Prerequisiti

Il modulo libpam-radius-auth

Debian ha un modulo che permette la connessione a un server Radius e la successiva interrogazione per gestire le autenticazioni. Nei repository è presente il pacchetto già pronto per l'installazione:

# apt-get install libpam-radius-auth

Dopo l'installazione il modulo va configurato, attraverso il file /etc/pam_radius_auth.conf:

# nano /etc/pam_radius_auth.conf
# server[:port]  shared_secret   timeout (s)
127.0.0.1:182    Chiave_segreta  3

Quindi cambiamo i permessi del file:

# chown root /etc/pam_radius_auth.conf
# chmod +r /etc/pam_radius_auth.conf

Configurazione di Squid

Giunti a questo punto dobbiamo informare il nostro Proxy Server su dove e come reperire le informazioni sulle autenticazioni.
Creiamo un file /etc/pam.d/squid:

# nano /etc/pam.d/squid

e aggiungiamo le linee seguenti:

auth sufficient pam_radius_auth.so
account sufficient pam_radius_auth.so

Verifichiamo che il modulo PAM appena installato funzioni correttamente, utilizzando le credenziali di un utente Radius funzionante:

# /usr/lib/squid3/pam_auth
radiustest radiuspassword
OK

Un risultato di OK significa che il modulo PAM funziona correttamente, mentre un ERR significa che abbiamo commesso qualche errore e che ci tocca rivedere tutto.
Premiamo CTRL+C per uscire.

Non ci resta che istruire Squid per gestire correttamente le autenticazioni Radius.
Apriamo il suo file di configurazione:

# nano /etc/squid3/squid.conf

e aggiungiamo le seguenti linee all'inizio del file:

auth_param basic program /usr/lib/squid3/pam_auth
auth_param basic children 5
auth_param basic realm REALM
auth_param basic credentialsttl 1 hours

Aggiungiamo la linea seguente nella sezione acl:

acl password proxy_auth REQUIRED

e la linea seguente prima della direttiva http_access deny all:

http_access allow password

Riavviamo e verifichiamo che all'atto della navigazione ci venga richiesta una password.

Nota

A causa della struttura del protocollo TCP/IP non è possibile avere un Proxy Server che sia contemporaneamente trasparente (cioè che non richieda configurazioni sui browser dei client) e che gestisca le autenticazioni.
Una soluzione consiste nell'utilizzare un server DHCP che, insieme ai classici parametri di configurazione di rete (indirizzo IP, subnet mask, gateway, DNS) fornisca ai client anche delle istruzioni per l'autoconfigurazione di un proxy server. Per la configurazione di un tale server DHCP si veda ad esempio la guida: Un server DNS e DHCP su Debian




Guida scritta da: Ferdybassi 11:22, 2 set 2012 (CEST)   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized