Dansguardian

Published by Lello on

Questo paragrafo è dedicato all’installazione di Dansguardian, uno dei content-filter da accoppiare a Squid per permettere una navigazione sicura.

La prima cosa da fare è chiaramente installare il prodotto; per fare ciò prenderemo una versione già “pacchettizzata” per CentOS 7:

rpm -ivh ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/Kenzy:/packages/CentOS_7/x86_64/dansguardian-2.12.0.3-1.1.x86_64.rpm

Dansguardian è modulare e può essere configurato per avere diversi file di configurazione per filtrare diversi gruppi di oggetti (utenti, indirizzi ip, …); noi accoppieremo i file di configurazione ad indirizzi ip; per questo è necessario che la nostra rete sia ben disegnata a livello di networking e che permetta di associare determinati indirizzi IP a certe tipologie di client (tipicamente tramite DHCP).

Andiamo a vedere il file di configurazione globale di dansguardian (/etc/dansguardian/dansguardian.conf ); le direttive che vi consiglio di modificare sono le seguenti:

   loglevel = 3  (log all request; potete modificarlo dopo aver effettuato il debugging del servizio);
   language = italian
   authplugin = '/etc/dansguardian/authplugins/ip.conf' (ci permette di assegnare a diversi pool di indirizzi ip, diverse configurazioni di dansguardian);
   filterports = 8080 (porta tcp di ascolto di Dansguardian)
   proxyip = 127.0.0.1 (indirizzo IP del server proxy)
   proxyport = 3128 (porta del proxy a cui Dansguardian deve connettersi)

La configurazione di default, quella applicata a tutti gli indirizzi ip se non specificato altrimenti, è quella descritta nel file /etc/dansguardian/dansguardianf1.conf; si potranno avere diversi file di configurazione (dansguardianf2.conf, dansguardianf3.conf, ….) da associare a diversi oggetti, in maniera tale da ben definire i filtri da utilizzare (ad esempio, per certi indirizzi IP potremmo bloccare tutto tranne dei siti che indichiamo noi, mentre su altri indirizzi potremmo avere una navigazione controllata, evitando siti che potrebbero portare malware all’interno dell’azienda).

Utilizzando indirizzi IP, l’associazione tra gruppi di indirizzi IP e il relativo file di configurazione è scritto nel file “/etc/dansguardian/lists/authplugins/ipgroups“:

   # IP-Group list
   # Used by the IP-based auth plugin to assign IP addresses to filter groups.
   # Client
   172.28.2.0-172.28.3.254 = filter1
   # Server
   172.28.0.200/24 = filter2

Abbiamo associato i client con indirizzi IP dal 172.28.2.0 al 172.28.3.254 al file di configurazione dansguardianf1.conf (dove permetteremo una navigazione filtrata); i server (che potranno usare dansguardian ma senza filtraggio) saranno associati al file di configurazione dansguardianf2.conf; ricordiamoci inoltre che tutto ciò che non viene definito, viene trattato come f1.

Occupiamoci del file dansguardianf1.conf; per effettuare un filtro “veloce”, basta modificare il valore della direttiva “Naughtiness limit“, che rappresenta il limite oltre il quale le pagine vengono bloccate dal filtro. Un valore troppo basso porterebbe a bloccare molte pagine, un valore troppo alto renderebbe inefficace il filtro. Un valore “giusto” potrebbe essere intorno ai 160 (ma va tarato in base alle reali esigenze):

   # naughtynesslimit = 50
   naughtynesslimit = 160

Dal filtro è possibile anche bloccare eventualmente i download, certe estensioni di file (ad esempio .xlsx o .docx), abilitare o disabilitare certi filtri (siti, parole chiavi, url, …).

Creiamo ora il file dansguardianf2.conf, che è il file associato ai server; chiaramente i server non devono essere filtrati, per cui il file conterrà solo questa direttiva

   # Filter group mode - 2 = unfiltered (exception)
   groupmode = 2

Se volessimo avere un gruppo di indirizzi IP che NON devono avere accesso all’esterno, potremmo bloccarli creando un file dansgaurdianf3.conf che include solo la seguente direttiva:

   # Filter group mode - 0 = banned
   groupmode = 0

A questo punto potremmo avviare il servizio e vedere se dansguardian è funzionante:

# systemctl start dansguardian
# lsof -i:8080
COMMAND    PID         USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dansguard 2230 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2233 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2234 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2236 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2237 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2238 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2239 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2240 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)
dansguard 2241 dansguardian    6u  IPv4  19609      0t0  TCP *:webcache (LISTEN)

Quindi il nostro servizio è attivo e funzionante.

[table “” not found /]