40983 Letture

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

C'è un software libero che consente di verificare quali richieste di connessione provengano dai sistemi connessi alla rete locale non autorizzando, ad esempio, la visualizzazione di siti web "sconvenienti" oppure non indicati in ambiente lavorativo. Il suo nome è Squid. Rilasciato sotto licenza GNU GPL, Squid soddisfa molteplici esigenze. Oltre alla già citata funzionalità che consente di impostare dei filtri sul traffico permesso, Squid mette a disposizione un servizio di cache utile per sveltire numerosi compiti.

Squid è un prodotto che viene sviluppato da diversi anni ed è quindi considerato come una piattaforma molto robusta. L'applicazione è capace di supportare diversi protocolli anche se l'impiego più comune riguarda i classici HTTP e FTP. Si tratta sostanzialmente di un evoluto server proxy che si interpone tra la rete Internet ed i sistemi client connessi alla rete locale.
Nel nostro esperimento, proveremo a configurare Squid come proxy trasparente: ciò significa che non sarà necessario riconfigurare manualmente tutte le macchine connesse alla rete locale indicando, come destinazione per tutte le richieste in uscita, la porta 3128 del server.
Tutto il traffico sarà automaticamente indirizzato alla porta sul quale Squid sarà posto in ascolto e la macchina server che allestiremo si comporterà come un router.

Abbiamo voluto installare Squid su una macchina Ubuntu Server dotata di due schede di rete: la prima (eth0) è connessa via cavo ethernet ad un router ADSL mentre la seconda (eth1) ad un router sul quale sono attestati tutti i sistemi che compongono la rete locale.
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.

Sulla macchina dotata di duplice scheda di rete, abbiamo provveduto ad installare l'ultima versione di Ubuntu Server (11.04 "Natty Narwhal"), prelevabile facendo riferimento a questa pagina, in formato ISO.


La procedura d'installazione di Ubuntu Server è esattamente quella illustrata in questo nostro articolo. Dopo aver lasciato inserito il CD d'installazione di Ubuntu Server nel lettore e riavviato il personal computer, si dovrà avviare il setup indicando, dapprima, la lingua prescelta (l'italiano) quindi la tastiera che si possiede. Se si utilizza una tastiera dal layout italiano, suggeriamo di rispondere No alla domanda "Detect keyboard layout" e selezionare sempre la voce Italia dalle due schermate seguenti:

Il passo successivo consiste nell'indicare la scheda di rete da usare come interfaccia principale (nel nostro caso abbiamo selezionato la prima):

Come evidenziato nell'introduzione, infatti, la macchina server sul quale si installerà Squid utilizza due schede di rete: la prima è connessa ad un router ADSL e quindi, direttamente, alla rete Internet mentre la seconda è collegata ad un semplice router sul quale sono attestati i vari personal computer client della LAN.

Successivamente, si dovrà definire un nome per la macchina virtuale (noi abbiamo scelto ubuntuserver).
Alla comparsa della schermata per il partizionamento dei dischi fissi, suggeriamo di selezionare l'opzione Guidato – usa l'intero disco e premere il tasto Invio. In questo modo, previa conferma, sarà utilizzato l'intero quantatitivo di spazio a disposizione sul disco fisso della macchina server.

Più avanti, dopo alcuni minuti d'attesa, si dovrà indicare un account da usare al posto di "root" per le operazioni comuni sul sistemi operativo ed impostare la relativa password.

La procedura d'installazione di Ubuntu Server, quindi, richiederà se si fosse interessati a crittografare il contenuto delle directory personali: è possibile operare la scelta che si ritiene più opportuna.

Alla comparsa della schermata Informazioni del proxy HTTP è possibile premere Invio per conmunicare all'installer che non si desidera usare alcun proxy server per il collegamento ad Internet.

Per quanto riguarda gli aggiornamenti di sicurezza è possibile scegliere di gestirli in maniera autonoma da Ubuntu Server (opzione Nessun aggiornamento automatico) oppure si può richiederne l'installazione automatica (Installare automaticamente gli aggiornamenti di sicurezza).

Non appena apparirà la schermata seguente, sarà possibile selezionare quali componenti si desidera vengano automaticamente installati. Per la configurazione di Squid non è necessario alcun software tra quelli indicati. Nel nostro caso, quindi, abbiamo preferito non selezionare alcuna voce e continuare l'installazione di Ubuntu Server.

Qualora si volesse cogliere l'occasione per configurare anche un file server, è possibile seguire le indicazioni riportate in quest'articolo.

Non appena verrà esposto il messaggio "Installare il boot loader GRUB nel master boot record" si dovrà rispondere affermativamente.

Ad installazione conclusa, la macchina Ubuntu Server sarà riavviata (basterà premere Invio sulla voce Continua).


Per accedere alla riga di comando di Ubuntu Server si dovranno digitare le credenziali d'accesso specificate durante l'installazione:

Per aggiornare tutti i pacchetti software di Ubuntu Server si potranno usare, in sequenza, i due comandi seguenti:

sudo apt-get update
sudo apt-get upgrade


Digitando il comando ifconfig si potrà verificare l'attuale configurazione delle interfacce di rete.
Per fare in modo che il server Ubuntu utilizzi sempre i medesimi indirizzi IP, è necessario editare il file interfaces digitando quanto segue al prompt:
sudo nano /etc/network/interfaces

Il contenuto del file dovrà essere modificato così come nell'immagine (sostituendo le informazioni già presenti nel caso dell'interfaccia di rete primaria):
auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

post-up iptables-restore < /etc/iptables.up.rules

auto eth1
iface eth1 inet static
address 192.168.2.50
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255


Per salvare la modifica appena applicata, come indica la legenda in calce alla schermata, è necessario premere la combinazione di tasti CTRL+O, il tasto Invio quindi CTRL+X per uscire dall'editor di testo e tornare alla riga di comando.
Così facendo, si è provveduto ad assegnare, definitivamente, l'IP 192.168.1.50 all'interfaccia di rete che si affaccia sulla rete Internet mentre l'IP 192.168.2.50 a quella connessa alla rete locale. Il comando post-up iptables-restore si farà carico di reimpostare la tabella di routing impostata a livello locale utilizzando le informazioni conservate nel file iptables.up.rules, che configureremo tra poco.


  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 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