La politica di sicurezza può naturalmente prevedere delle limitazioni di accesso su taluni siti web: siti a sfondo sessuale o ludico possono essere vietati. Squid può essere utilizzato anche come potente strumento di content management. É possibile limitare i contenuti a parte della rete aziendale: la rete degli utenti può essere monitorata e filtrata utilizzando il sistema di autenticazione e la procedura di content managment.
Con le ACL del tipo url_regex è possibile inserire un percorso per i files che contengono la lista delle parole chiave selezionate che consentono di individuare il sito Web vietato che è stato richiesto dal client HTTP (netscape, mozilla, internet explorer....).
acl porn url_regex "/squid/etc/blocked/porn.block.txt" acl notporn url_regex "/squid/etc/blocked/porn.unblock.txt" acl badlang url_regex "/squid/etc/blocked/badlang.block.txt" acl entertain url_regex "/squid/etc/blocked/entertain.block.txt" acl games url_regex "/squid/etc/blocked/games.block.txt" acl pirate url_regex "/squid/etc/blocked/pirate.block.txt" |
ecco il TAG http_access, facciamo attenzione all'ordine dei dinieghi di accesso via http
http_access deny porn http_access deny badlang http_access deny entertain http_access deny games http_access deny pirate |
Inseriti i blocchi ora è possibile definire le ACL relative agli host autorizzati. Per scaricare una lista aggiornata degli host è necessario raggiungere la seguente URLs: http://www.squidblock.com/. Di seguito esaminiamo anche il formato dei files che possono contenere la lista delle parole chiave che consentono di individuare i siti web
.sex.de .playboy.com.br .clubhardcore.com www-cache.fh-bingen.de .monkeylove.com .amateur-pages.com .hitboss.com .peep.com .erotism.com .sinfulmail.com .nookie.com .snapshots.com .onlyteens.com heavyhangers .dailydirt.com hustler .brunclik.cz .desibaba.com .picturepost.com .haloo.fi .smut.com |
altre liste di siti precompilate possono anche essere reperite
Squid and web utilities alla URL http://web.onda.com.br/orso/ di Pedro Lineu Orso
Squid Blocking Files alla URL http://members.lycos.co.uk/njadmin/ di Jasons Staudenmayer
In questo paragrafo tratteremo un modello di configurazione molto interessante ed anche molto semplice, è un dato di fatto più dell'80% delle consultazioni sui siti web effettuate da parte degli utenti aziendali non riguardano assolutamente nessuno degli argomenti connessi con gli scopi che si è prefissa l'organizzazione per la quale lavorano. Nell'esempio riportato con questo tipo di configurazione restringeremo al massimo il campo di consultazione ai soli web-site che sono stati definiti come "interessanti" ed "utili", gli esempi riportati possono essere validi in un'ambiente dove i bambini hanno libero accesso alle risorse web
acl allowed_hosts src 192.168.0.0/255.255.255.128 acl allowed_hosts1 src 192.168.0.128/255.255.255.128 acl allowed_hosts2 src 192.168.1.0/255.255.255.0 acl porn url_regex "/etc/squid/block/porn.block.txt" acl consentiti url_regex "/etc/squid/block/consentiti.txt" acl nonconsentiti url_regex "/etc/squid/block/nonconsentiti.txt" acl snmpManager src 192.168.0.4/255.255.255.255 acl snmppublic snmp_community public |
abbiamo definito delle ACL che in prima istanza frazionano la rete in due subnet distinte e poi definiscono delle liste in formato regexp, il file regexp è un file di testo nel quale vengono dichiarate un'insieme di espressioni regolari. Di seguito vengono applicate le ACL per definire questa specifica configurazione di Squid
http_access allow localhost http_access allow allowed_hosts http_access allow consentiti http_access deny nonconsentiti http_access allow allowed_hosts1 http_access deny manager all http_access deny all http_access deny !Safe_ports http_access deny CONNECT !SSL_ports |
si evince che alla subnet dichiarata dalla ACL "allowed_hosts" (192.168.0.0/255.255.255.128) è consentito l'accesso a tutti i siti web, mentre la subnet dichiarata dalla ACL "allowed_hosts1" (192.168.0.128/255.255.255.128) è consentito accedere alle URL contenute nella lista di regexp che viene dichiarata dalla ACL "consentiti". Successivamente verranno bloccate tutte le URL contenute nella lista di regexp definita con la ACL "nonconsentiti". Di seguito la lista /etc/squid/block/consentiti.txt
www.totallyspies.com www.it.barbie.com www.myscene.com www.witchmagazine.it www.streghe.net go.to/streghe www.antoniogenna.net disney www.diddl.com www.pollypocket.com www.cartoonnetwork.it www.repubblica.it merlinobbs.net www.foxkids www.melevisione.rai.it www.xmen www.batman powerrangers |
ancora di seguito la lista /etc/squid/block/nonconsentiti.txt
% more nonconsentiti.txt . |
la lista di regexp "nonconsentiti.txt" con l'esperessione "." blocca tutto il resto.
E' possibile utilizzare le ACL per consentire agli utenti di raggiungere direttamente alcuni siti internet. Ad esempio, se vogliamo che Squid consenta la connessione diretta con servers appartenenti al dominio cisco.com possiamo definire il seguente TAG all'interno del file squid.conf
acl cisco dstdomain .cisco.com always_direct allow cisco |
Controllando lo user-agent log potremmo incorrere in questo tipo di codice
Gator/5.0 Script FD6B41F906B248C3B5711814B3F375B8 2 0.00 Gator/5.0 Precision Time \ |
se vogliamo evitare che le macchine infettate degli utenti interroghino la nostra rete passando per squid potremmo aggiongere il seguente TAG
acl gator browser Gator/5.0 Http_access deny gator |
Controllando lo user-agent log potremmo incorrere in questo tipo di codice
Windows-Media-Player/9.00.00.3128 |
se vogliamo evitare che gli utenti utilizzino squid per vedere la TV o ascoltare la radio
acl WMP browser Windows-Media-Player/* http_access deny WMP |
Tra gli elementi che compongono le ACL possiamo identificare un header del tipo content-type, inoltre possiamo identificare il pattern inviato quale risposta ad una intestazione del tipo content-type. Gli elementi che compongono le ACL da utilizzare sono il req_mime_type ed il rep_mime_type. Se vogliamo evitare l'utilizzo del msn-messanger dovremmo impostare le seguenti ACL
acl reqmsn req_mime_type -i ^application/x-msn-messenger acl repmsn rep_mime_type -i ^application/x-msn-messenger |
Il messanger msn viene identificato quindi dal tag application/x-msn-messenger, a questo punto dobbiamo solo applicare le regole appena definite
http_access deny reqmsn http_reply_access deny repmsn |
E' possibile utilizzare Squid senza memorizzare le pagine visitate nella cache, il TAG no_cache infatti consentirà di eliminare il caching degli oggetti
acl all src 0/0 no_cache deny all |