11.3. Parametri di Configurazione

Per il processo di autenticazione Squid utilizza dei programi esterni detti helper che si occupano della verifica delle credenziali utente. Tutti i parametri relativi alla configurazione dei tre schemi di autenticazione supportati sono specificati in squid.conf tramite la direttiva auth_param, il suo formato generico è

auth_param schema parametro [valore]
  

per attivare uno schema di autenticazione é sufficiente configurare l'helper ad esso associato e riavviare Squid (squid -k reconfigure). L'ordine con cui gli schemi di autenticazione vengono proposti al browser web segue l'ordine con cui sono definiti nel file di configurazione squid.conf. Alcune versioni di Internet Explorer, a causa di un noto bug, non seguono fedelmente le specifiche RFC 2617 (http://www.faqs.org/rfcs/rfc2617.html) e, anche in presenza di schemi più sicuri, utilizzano erroneamente lo schema Basic, se questo viene proposto per primo al browser web. Per ovviare a questo problema, si raccomanda di definire gli schemi nel file di configurazione nell'ordine Digest, NTLM e Basic.

Una volta che uno schema di autenticazione é stato totalmente configurato, l'unico modo per terminarne l'esecuzione é riavviare Squid, modifiche alla configurazione possono essere eseguite "al volo" tramite il comando squid -k reconfigure. Per esempio, é possibile cambiare il tipo di l'helper utilizzato, ma non è possibile disattivarne del tutto l'utilizzo, in quanto lo stesso è legato ad uno schema di autenticazione attivo. Per utilizzare l'autenticazione è necessario definire un TAG con una acl nella quale venga specificata almeno la seguente direttiva

acl password proxy_auth REQUIRED
  

tale direttiva definisce l'elemento ACL password che potrà essere utilizzato in tutte le acl standard di Squid. La scelta degli helper da attivare viene effettuata al momento della configurazione dei parametri di compilazione di Squid

% ./configure --enable-schema-auth-helpers="elenco helper"
  

dove schema può assumere i valori ntlm, basic e digest, il nome dell'helper da specificare è il nome (case sensitive) dalla cartella nel source tree di Squid che ne contiene i sorgenti

% ./configure --enable-auth="ntlm basic" \
--enable-ntlm-auth-helpers="fakeauth winbind SMB" \
--enable-basic-auth-helpers="NCSA winbind MSNT" 
  

nell'esempio precedente abbiamo selezionato gli schemi di autenticazione Basic e NTLM, contemporaneamente abbiamo anche definito gli helper NCSA, winbind e MSNT relativamente allo schema Basic. Abbiamo anche definito gli helpers Fakeauth, winbind ed SMB relativamente allo schema NTLM.

Nota: In Squid 2.4, dove non esistono altri schemi di autenticazione oltre al Basic, la scelta degli helper da attivare può essere effettuata utilizzando la seguente opzione del comando ./configure

% ./configure --enable-auth-modules="elenco helpers" 
  

Il funzionamento globale del motore di autenticazione di Squid é controllato dalle seguenti direttive

authenticate_cache_garbage_interval timespan
authenticate_ttl timetolive
authenticate_ip_ttl timetolive
  

il TAG authenticate_cache_garbage_interval timespan

Definisce l'intervallo con cui vengono effettuati i cicli di garbage collection sul contenuto della username cache. Il valore predefinito é 1 ora, e rappresenta un compromesso tra l'utilizzo di memoria (intervalli lunghi, per esempio 2 giorni) e di CPU (intervalli brevi, per esempio 1 minuto). Si raccomanda di non variare questa impostaziona senza una valida motivazione

authenticate_cache_garbage_interval 1 hour
  

il TAG authenticate_ttl timetolive

Indica la durata del periodo per cui vengono mantenute in cache le credenziali relative ad un utente a partire dalla sua ultima richiesta. Quando viene iniziato un ciclo di garbage, tutte le credenziali utente il cui TTL é spirato vengono eliminate dalla memoria. Il valore predefinito é 1 ora.

authenticate_ttl 1 hour
  

il TAG authenticate_ip_ttl timetolive

Questa direttiva controlla quanto a lungo Squid conserva l'associazione indirizzo IP/utente quando si utilizza uno o più schemi di autenticazione in concomitanza con una ACL di tipo 'max_user_ip'. Si raccomanda l'utilizzo di un valore piccolo (per esempio 60 secondi) se si prevede che gli utenti possano cambiare indirizzo IP spesso, come nel caso di connessioni di tipo dialup. In reti locali di tipo corporate con indirizzi tendenzialmente statici é raccomandabile l'utilizzo di valori maggiori (per esempio 2 ore). Il valore predefinito é 0 secondi.

authenticate_ip_ttl 0 seconds