44012 Letture

Come bloccare la consultazione di siti web come Facebook & C. in ufficio con Ubuntu e Squid

Avendo impostato Squid come proxy trasparente, normalmente non sono necessarie modifiche sui sistemi che compongono la rete LAN.
Nel nostro esempio è necessario soltanto che le workstation collegate in rete locale utilizzino gli IP da 192.168.2.1 in poi (fatta eccezione per 192.168.2.50 che è l'indirizzo assegnato al server Ubuntu/Squid).

Ecco, ad esempio, come abbiamo configurato le proprietàd dell'interfaccia di rete utilizzata da un sistema Windows XP collegato in rete locale:

Come si vede, il gateway predefinito è stato impostato a 192.168.2.50, IP assegnato all'interfaccia eth1 sul server Ubuntu.

Con le nostre indicazioni, le varie macchine della LAN dovrebbero essere in grado di "navigare" sul web senza la necessità di operare alcun intervento di riconfigurazione.


Il percorso seguito dai pacchetti dati provenienti dai client è verificabile, ad esempio, lanciando un semplice TRACERT da un sistema client Windows:

Proviamo adesso ad impostare una restrizione in modo tale da impedire agli utenti della LAN la consultazione di siti web come Facebook, Twitter, Meebo o MySpace. Torniamo quindi sulla macchina Ubuntu Server ove si è precedentemente installato e configurato Squid.

Impostazione di restrizioni con Squid

Per imporre delle limitazioni ed impedire, ad esempio, la visita di determinati siti web, è sufficiente effettuare il login sulla macchina Ubuntu Server quindi aprire il file di configurazione di Squid:
sudo nano /etc/squid3/squid.conf

Immediatamente sopra la prima direttiva http_access, si potrà inserire quanto segue:
acl bad_url dstdomain "/etc/squid3/bad-sites.squid"
Sopra http_access allow lan, invece, si dovrà specificare la nuova riga http_access deny bad_url.

In questo modo, Squid impedirà la consultazione, da parte dei sistemi collegati in rete locale, di tutti i siti web riportati nel file bad-sites.squid.

Salviamo il file con la solita procedura quindi invochiamo il comando sudo nano /etc/squid3/bad-sites.squid.
Al suo interno scriviamo, per esempio:
.facebook.com
.twitter.com
.meebo.com
.myspace.com

Per rendere operative le modifiche, si dovrà riavviare Squid:
sudo /etc/init.d/squid3 restart
A riavvio di Squid avvenuto, se si tenterà di visitare – ad esempio – Facebook da uno qualunque dei sistemi collegati alla rete locale, con qualunque browser web, si otterrà il messaggio seguente:

Per bloccare il download di certe tipologie di file, è possibile inserire nel file di configurazione di Squid, la riga acl blockfiles urlpath_regex "/etc/squid3/blockfiles.squid".
Immediatamente sopra la riga http_access allow lan si dovrà invece inserire http_access deny blockfiles.

Con il comando sudo nano /etc/squid3/blockfiles.squid si potrà editare il file contenente l'elenco dei file il cui download deve essere sempre bloccato.
All'interno del file blockfiles.squid è ad esempio possibile inserire quanto segue per fare in modo di bloccare qualsiasi tentativo di prelievo di file con estensione .EXE, .AVI, .MPG, .MPEG e .MP3:

\.[Ee][Xx][Ee]$
\.[Aa][Vv][Ii]$
\.[Mm][Pp][Gg]$
\.[Mm][Pp][Ee][Gg]$
\.[Mm][Pp]3$



Riavviando Squid (sudo /etc/init.d/squid3 restart), la nuova limitazione diverrà immediatamente operativa.

Coloro che avessero la necessità di consultare i file di log costantemente aggiornati da Squid, possono fare riferimento al contenuto della cartella /var/log/squid3.

  1. Avatar
    cow
    09/05/2013 09.26.11
    la mia macchina linux squid appartiene alla stessa sottorete LAN 10.10.10.0 ho provato il tracert da un client e i pachetti hanno come primo hop squid, poi però non viene limitato nulla dalla bad-sites.squid cosa può essere che non và?
  2. Avatar
    Sama
    24/04/2012 10.12.56
    :approvato: OTTIMO ARTICOLO BRAVO!!
  3. Avatar
    Michele Nasi
    22/11/2011 09.05.06
    Se hai seguito le indicazioni illustrate nell'articolo, la procedura di blocco dovrebbe "innescarsi" senza alcun problema. Il meccanismo è stato provato più volte prima di essere proposto sotto forma di articolo. Bisognerebbe verificare come hai applicato tutti i vari passaggi. Intanto, come primi hop, di TRACERT http://www.google.it" onclick="window.open(this.href);return false; da client cosa ottieni?
  4. Avatar
    Jamba
    21/11/2011 20.13.43
    Bellissimo articolo solo che nell'utlima parte non funziona sui client , e cioè che vanno tranquillamente su facebook,myspace,twitter e via dicendo.........soc
  5. Avatar
    LuCar
    18/06/2011 10.25.47
    Molto interessante; avrei un quesito.
    Per quale motivo, mi è capitato di vedere, in alcune reti si usa in abbinamento a Squid anche Dansguardian?
    Ha senso l'utilizzo dei due software insieme, o è possibile fare tutto il lavoro di filtraggio esclusivamente con Squid, come, mi pare di capire, spiegate in questo articolo, al solito, molto ben scritto? :approvato:
    Complimenti e grazie.
  6. Avatar
    Michele Nasi
    15/06/2011 08.04.29
    No, abbiamo sostanzialmente creato due reti separate. Il dispositivo che instaura la connessione WAN, nel nostro caso, è 192.168.1.1 mentre il router che "smista" il traffico di rete è 192.168.2.1. Il server Linux Ubuntu Server ha due interfacce di rete: la prima (192.168.1.50) è connessa al router ADSL mentre l'altra (192.168.2.50) alla LAN.
    Nulla vieta di utilizzare indirizzi IP differenti: per la rete LAN, ad esempio, si sarebbe potuto usare 192.168.0.x, 10.0.0.x,... ma non sarebbe cambiato assolutamente nulla!
  7. Avatar
    An.Cucchi
    15/06/2011 06.58.40
    Citazione: La prima interfaccia di rete (collegamento al router ADSL, attraverso il quale ci si affaccia alla Rete Internet) utilizzerà l'IP 192.168.1.50 (192.168.1.1 è l'IP del router ADSL) mentre la seconda (eth1), l'IP 192.168.2.50.
    Il router che gestisce il traffico della rete locale, infatti, ha l'IP 192.168.2.1.
    Mi sa che avete fatto confusione!!!

    Ancucchi
Come bloccare la consultazione di siti web come Facebook & C. in ufficio con Ubuntu e Squid - IlSoftware.it - pag. 3