Nel corso dell'articolo "Creare un "super router" con un vecchio PC e CentOS" abbiamo visto come aggiungere un nuovo, importante tassello per il controllo della nostra rete locale.
Andremo ora ad attivare una delle più interessanti caratteristiche offerte da questo approccio: la capacità di filtrare i contenuti inadatti ai minori, ai luoghi di lavoro o a tutte le altre circostanze in cui sia necessario forzare l'uso "morale" e/o produttivo dei sistemi che fanno parte della LAN
Notate che se volete semplicemente gestire uno o due PC, l'uso di questa infrastruttura è eccessivo: potete invece rivolgere l'attenzione ad una soluzione più semplice da installare direttamente sui client, come ad esempio l'ottimo K9 Web Protection.
Ciò premesso...
Il requisito più "gravoso" per portare a termine quanto andremo a descrivere di seguito è la presenza di un "super router" CentOS alla guida della vostra rete, già opportunamente equipaggiato con il pacchetto Squid. Prima di proseguire, sinceratevi di aver predisposto il tutto così come dettagliato in "Risparmiare banda e velocizzare l'accesso al web: guida a Squid su CentOS".
Dovete inoltre aver abilitato l'accesso ad RPMforge: seguendo le indicazioni riportate in "Come aggiungere e rimuovere repository su CentOS", questa operazione si riduce ad impartire pochissimi comandi.
È necessario svolgere la maggior parte delle operazioni seguenti con i privilegi di root: per la massima comodità, suggerisco di accedere direttamente al sistema con tale account. Se preferite utilizzare il vostro utente deprivilegiato, potrebbe bastare comunque lanciare tutti i comandi proposti anteponendo la striga sudo .
Il software che ci consente di bloccare al meglio l'accesso ai siti indesiderati si chiama SquidGuard: è un componente che si "appoggia" a Squid (tecnicamente è il viceversa, ma poco importa) e regola il flusso di accesso ai contenuti. Come il resto del sistema operativo, anche SquidGuard è rilasciato con licenza GPL (open source), ed è quindi liberamente utilizzabile anche in ambiti commerciali.
Per installarlo sul vostro super router CentOS, aprite un terminale (Applications -> Accessories -> Terminal) ed impartite yum install squidguard -y.
In caso riceveste l'errore No package squidguard available., significa che avete dimenticato di configurare l'accesso al repository "RPMforge").
Sulla mia configurazione di test, l'installazione via yum aveva dimenticato di creare la cartella dedicata ai log.
Per verificarlo, impartite cd /var/log/squidguard. Se non ottenete alcun errore, proseguite oltre.
In caso il sistema vi rispondesse invece No such file or directory, create la cartella tramite mkdir /var/log/squidguard, quindi assegnatele gli opportuni privilegi con chown -R squid /var/log/squidguard.
SquidGuard lavora appoggiandosi a lunghe liste di siti già classificati e pronti per essere bloccati (o meno).
La prima cosa da fare è quindi quella di prelevare uno di questi archivi. La sezione "SquidGuard - Blacklists" del sito ufficiale ne propone diversi: nel prosieguo, utilizzeremo quello mantenuto dai tedeschi di Shalla Secure Services KG: si tratta di un pacchetto composto da oltre 1,6 milioni di siti.
L'uso di questa lista è gratuito sia per i privati, sia per le aziende. Alle realtà professionali è però richiesto di firmare esplicitamente un contratto d'uso.
Scaricate il file dal sito e salvatelo nella cartella /var/lib/squidguard/, poi fatevi click con il pulsante destro del mouse e selezionate Extract here dal menu contestuale
Troverete una directory di nome BL con varie sotto-cartelle, ognuna contenente una lista di blocco (composta da due file) per siti del relativo tipo
Assicuratevi ora che l'intera cartella e tutto il contenuto siano proprietà dell'utente giusto lanciando chown -R squid /var/lib/squidguard/*.
A questo punto, scaricate l'archivio contenente il file di configurazione pronto all'uso ed estraetelo nella cartella /etc/squid, sovrascrivendo quello già presente
Con la configurazione proposta, SquidGuard bloccherà le principali categorie indesiderate in ambienti professionali: porno, malware, social network e servizi di streaming video.
Vedremo in seguito come personalizzarlo. Al momento, potete provare ad usarlo così com'è.
Dovete ora inizializzare le liste di blocco. Aprite una finestra di terminale ed impartite
squidGuard -C all (rispettate la maiuscola!)
Rendete poi accessibili tutti i file creati lanciando chown -R squid /var/lib/squidguard/*.
Andremo ora a configurare Squid di modo che si interfacci con SquidGuard. Lanciate gedit /etc/squid/squid.conf per aprire il relativo file di configurazione.
Cercate (pulsante Find nella barra degli strumenti) il testo TAG: url_rewrite_program ed aggiungete una nuova riga subito sotto a quella che recita # none.
Su di essa, copia-incollate questa direttiva:
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidguard.conf
Salvate il file di configurazione ed impartite service squid restart nel terminale per rendere effettive le modifiche.
Tutto è pronto: potete provare ad accedere ad una risorsa bloccata. Se avete utilizzato la configurazione proposta, Facebook è fra questi: aprite quindi www.facebook.com su uno dei client e dovreste imbattervi nella pagina di blocco scelta (notate che l'impiego di HTTPS da solo non è sufficiente a svincolarsi dal filtro)
Se volete bloccare altre categorie oltre a quelle proposte, potete farlo con grande semplicità:
Ripetete la procedura per tutte le categorie che desiderate inibire, quindi ricordatevi di inizializzare le liste di blocco come visto poco fa: in un solo comando, quest'ultima fase si riduce a:
chown -R squid /var/lib/squidguard/* && squidGuard -C all && chown -R squid /var/lib/squidguard/* && service squid restart
Prima di chiudere il file, potreste voler modificare la pagina di errore che Squid mostrerà ai client tutte le volte che richiederanno una pagina bloccata (per impostazione predefinita, la nostra configurazione mostra un'immagine caricata da MegaLab.it).
Per farlo, basta modificare l'URL riportato dopo la voce redirect presente verso la fine del file.
Il modo più comodo per inibire l'accesso alle risorse che non siano presenti nella liste scaricate è quello di creare un proprio elenco:
Seguite ora la procedura descritta al paragrafo precedente (Bloccare altre tipologie di contenuto) per caricare questo file di blocco nella vostra configurazione e avete concluso!
Prima di impazzire cercando di capire che non funzioni, vi sottolineo che la procedura per bloccare altre tipologie di contenuto prevede, come ultimo passaggio, anche la reinizializzazione delle liste, l'assegnazione dei privilegi ed il riavvio del servizio!
Come appare evidente, l'intero impianto è tanto buono quanto lo sono le liste di blocco utilizzate. Di conseguenza, è importante aggiornarle quantomeno mensilmente di modo che siano classificate correttamente anche le nuove risorse.
Anche così facendo, dopo qualche settimana di utilizzo, ho ottenuto risultati misti.
Per quanto riguarda i social network, ad esempio, tutte le più importanti realtà internazionali (MySpace, Twitter, Netlog, Orkut) vengono bloccate correttamente, ma vi sono comunque alcune piccole risorse che sfuggono (risultano comunque talmente poco trafficate che difficilmente potranno essere di un qualche interesse per gli utenti della LAN).
Situazione analoga per quanto riguarda i siti dedicati al mondo del porno: tutti i domini presentati nelle prime pagine di una ricerca a tema su Google sono filtrati correttamenente, ma basta scavare un po' fra le pieghe della rete per trovare moltissime foto inequivocabili e non censurate.
Risultati più soddisfacenti per quanto riguarda le risorse dedicate allo streaming video: nel corso di qualche rapida prova, non sono riuscito a trovare nemmeno un rivale di YouTube realmente funzionante.
La vostra esperienza varierà sicuramente in funzione di molti parametri (competenza dei vostri utenti, stato di aggiornamento delle liste scelte, numero di categorie blocca e via dicendo), ma in linea di massima potete aspettarvi risultati "più che soddisfacenti, ma non perfetti".
In caso vi servisse ancora qualcosa di più, potete pensare di affiancare al tutto un secondo programma chiamato DansGuardian che utilizza un sistema di blocco basato su parole chiave invece di gestire domini interi: il 100% di successo continuerà ad essere ben lontanto, ma tentare, in caso di necessità particolarmente stringenti, non nuoce.
Vi segnalo comunque che nemmeno la potente infrastruttura che stiamo predisponendo vi garantirà l'assoluta certezza che qualcuno non riesca a bypassare il blocco. Se uno dei vostri utenti ha un bagaglio di competenze tecniche adeguato, potrà sempre "Accedere ai siti bloccati mediante SSH", anche in caso abbiate esplicitamente previsto questo scenario.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati