Gestione di una whitelist per utenti con Squid

From RVM Wiki
Revision as of 15:48, 19 June 2006 by Gabriele.vivinetto (talk | contribs) (Link ntlm)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Si vuol gestire Squid per filtrare la navigazione web gestendo una semplice Whitelist, decidendo quali utenti hanno

  • navigazione illimitata
  • navigazione limitata ai siti consentiti
  • navigazione vietata agli altri utenti

E' possibile usare le sole ACL di Squid, senza ricorrere a redirector esterni tipo SquidGuard o DansGuardian.

Presupposti

Si presume il corretto funzionamento dell'autenticazione, sia essa IDENTD o NTLM (vedi Autenticazione NTLM in Squid).

Creazione files di definzione

  • Creare il file /etc/squid/utenti.illimitati contenente i nomi degli utenti che navigheranno senza restrizioni.

Tale lista dovrà contenere i nomi utenti in minuscolo e nel caso di autenticaione NTLM, sempre in minuscolo, nella forma

nomeutente\dominio
  • Creare il file /etc/squid/utenti.limitati contenente i nomi degli utenti che navigheranno solo sui siti della whitelist, seguendo le indicazioni precedenti.
  • Creare il file /etc/squid/siti.consentiti contenente i nomi completi di tutti i server http a cui si deve accedere senza prefisso http:// e senza url finale.

Ad esempio, se si vuole far visitare il sito che risponde alla pagina http://www.server.pippo.com/index.html, inserire

www.server.pippo.com
  • ATTENZIONE: se si vuole sbloccare l'intero dominio, cioè inserire un valore che valga per www.dominio.dom, www.sub.dominio.dom, inserire:
.dominio.dom
cioè il nome del dominio preceduto da un punto.

Definizione delle ACL

  • Verificare che non ci sia nessun redirector installato, nel caso rimuoverlo.
sudo cat /etc/squid/squid.conf | grep ^redirect
  • Nella sezione ACL in /etc/squid.conf, prima della direttiva proxy_auth, definire l'acl relativa ai siti consentiti:
acl Siti_Permessi       dstdomain       "/etc/squid/siti.permessi"
  • Sempre nella sezione ACL, come ultime direttive, inserire le acl relative ai gruppi di utenti:
acl Lan_1               src             192.168.1.0/255.255.255.0
acl Utenti_Illimitati   proxy_auth      "/etc/squid/utenti.illimitati"
acl Utenti_Limitati     proxy_auth      "/etc/squid/utenti.limitati"

Nota esplicativa

In pratica la direttiva proxy_auth dice che per ogni utente correttamente autenticato, vengono considerati validi solo gli utenti elencati nel file indicato.

Se alla direttiva proxy_auth si fa seguire REQUIRED, allora, tutti gli utenti autenticati saranno considerati validi.

L'Acl Lan_1 è riportata solo per chiarezza.

Applicazione delle ACL

Nella sezione http_access, prima delle ultime due direttive:

http_access allow localhost
http_access deny all

Mettere le direttive:

http_access allow Lan_1 Utenti_Illimitati
http_access allow Lan_1 Utenti_Limitati Siti_Permessi

Questo significa:

  • http_access allow Lan_1 Utenti_Illimitati

le connessioni che sono provenienti dalla Lan_1 e che sono effettuate dagli Utenti_Illimitati, sono permesse senza ulteriori limitazioni.

  • http_access allow Lan_1 Utenti_Limitati Siti_Permessi

le connessioni che sono provenienti dalla Lan_1 e che sono effettuate dagli Utenti_Limitati e che sono dirette ai Siti_Pemessi, sono permesse. Se un utente limitato cerca di accedere ad un altro sito, non gli sarà permesso.

Poichè le direttive successive sono:

  • http_access allow localhost

Consente connessioni da localhost senza restrizioni

  • http_access deny all

Vieta qualsiasi altro tipo di connessioni

QUALSIASI ALTRO UTENTE, ANCHE SE AUTENTICATO, non potrà navigare su nessun sito.

Fare un reload della configurazione per testare le modifice:

sudo /etc/init.d/squid reload

Osservare i log

sudo tail -f /var/log/squid/cache.log

PEr vedere se ci sono eventuali errori di configurazione che impedisconoa squid di partire

sudo tail -f /var/log/squid/access.log

Per vedere quali siti vengono bloccati con TCP_DENIED e quali no, in base ai nomi utenti.


Riferimenti