Sei sulla pagina 1di 13

Qual è il modo più efficace per bloccare i siti Internet ed impedire l'accesso ad alcuni di essi?

Di
recente, in alcuni nostri articoli, abbiamo parlato della possibilità di utilizzare speciali server DNS
capaci di impedire la visita di determinati siti Internet, di ricorrere all'uso del file HOSTS oppure
di software in grado di attivare, una volta installati sul sistema, funzionalità di web filtering.

Nel riquadro seguente, citiamo i principali nostri articoli sull'argomento:

- Come impedire la visita di siti web specifici in Windows

- DNS sicuri con Angel DNS: protezione contro malware e siti sconvenienti

Le soluzioni sin qui presentate sono certamente efficaci ma non hanno valenza generale: non
impediscono la visita di talune tipologie di siti web indipendentemente dal sistema client connesso
alla rete locale e limitano la protezione alla singola macchina. Collegando alla rete locale un altro
personal computer, uno smartphone od un tablet, il dispositivo sarà in grado di raggiungere
qualunque sito web. Un utente che dispone di un account di tipo amministrativo potrà inoltre
modificare i server DNS in uso o la configurazione del file HOSTS.

Se le proprie esigenze si ponessero ad un livello superiore, è possibile orientarsi su una soluzione


centralizzata che permetta di bloccare qualunque tipologia di sito web.

Uno dei software migliori, capaci di bloccare siti web secondo diversi criteri, è Squid. Grazie ai
suoi “tentacoli” (squid, in inglese, è il calamaro), l'applicazione può bloccare l'accesso ai siti
Internet semplicemente esaminando le varie richieste di connessione provenienti dai client
collegati in rete locale. Indipendentemente dal browser in uso su ciascuna macchina, Squid
saprà intercettare le richieste di collegamento e rigettare quelle che non rispettano le regole
imposte dall'amministratore.

Così, grazie a Squid sarà molto semplice bloccare Facebook, i social network in generale, i siti
porno, YouTube e così via.

Squid, tra l'altro, è un software libero rilasciato sotto licenza GNU GPL che si rivela di
grandissima utilità in ambiente lavorativo.

Configurare Squid come proxy trasparente

Nel nostro caso configureremo 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, una porta ben precisa (tipicamente, la TCP
3128).

Configurando Squid come proxy trasparente, tutto il traffico sarà automaticamente indirizzato
alla porta sul quale Squid verrà messo in ascolto. La macchina server con Squid si comporterà di
fatto come un un router.

Prima di procedere è necessario dotarsi di una macchina da utilizzare per l'installazione di


Ubuntu Server 12.04.2 LTS, scaricabile da questa pagina.

La sua dotazione hardware della macchina prescelta non dev'essere nemmeno troppo robusta:
suggeriamo 512 MB di RAM, un disco fisso da almeno 30 GB e due schede di rete.
La presenza di due schede di rete è requisito essenziale: la prima scheda (Linux la chiamerà
eth0) dovrà essere connessa attraverso un cavo ethernet ad un router ADSL mentre la seconda
(eth1) ad un hub sul quale sono attestati tutti i sistemi che compongono la rete locale.

Supponiamo che il router ADSL abbia IP 192.168.1.1; alla prima interfaccia di rete installata sul
server Linux assegneremo, ad esempio, l'IP 192.168.1.100. Su tale indirizzo IP risponderà, tra
l'altro, anche l'interfaccia di amministrazione web che utilizzeremo per gestire Squid.

Nel nostro caso, alla seconda interfaccia assegneremo invece l'IP 10.0.2.100 ed imposteremo un
server DHCP in modo tale che tutti i client che via a via si connetteranno alla rete locale potranno
automaticamente ricevere indirizzo IP e DNS da utilizzare (per semplicità, attiveremo il DHCP a
partire dall'IP 10.0.2.101 all'IP 10.0.2.255; gli IP 10.0.2.1-10.0.2.99 potranno essere utilizzati per
le assegnazioni manuali).

A questo punto è possibile accedere da browser web all'interfaccia di Webmin. Per procedere
bisognerà collegare, tramite cavo ethernet, un personal computer al router 192.168.1.1 e digitare
l'indirizzo http://192.168.1.100:10000 nella barra degli indirizzi del browser.

Per entrare in Webmin, si dovranno digitare username e password definiti in fase d'installazione:

Dal menù Networking bisognerà quindi scegliere Network Configuration e fare clic su Network
interfaces:

Qui si potrà aggiungere la seconda interfaccia di rete facendo clic su Add a new interface:
Nel nostro caso inseriremo eth1 nel campo Name e 10.0.2.100 nel campo IPv4 address
verificando che l'opzione Activate at boot sia impostata su Yes.

Per concludere, bisognerà fare clic sul pulsante Create and apply.

Cliccando su Return to network configuration, bisognerà poi selezionare Hostname and DNS Client.
In corrispondenza dei campi DNS servers si dovranno indicare i server DNS che si desiderano
utilizzare:
La modifica dovrà essere memorizzata cliccando sul pulsante Save.
Il passo successivo consiste nel richiedere l'installazione di Squid.
Per procedere è sufficiente cliccare su Un-used Modules quindi su Squid Proxy Server. Alla
comparsa del messaggio seguente bisognera cliccare sul link Click here evidenziato con una
freccia rossa:

Webmin provvederà a scaricare autonomamente il pacchetto d'installazione di Squid ed a caricarlo


sulla macchina in uso.

Ricaricando l'indirizzo http://192.168.1.100:10000, si troverà Squid Proxy Server nella


sezione Servers della colonna laterale di Webmin.

Per iniziare, bisognerà cliccare sull'icona Cache options:


In corrispondenza di Cache directories bisogna selezionare l'opzione Listed quindi specificare
/var/spool/squid3 nel campo Directory; 900 in Size; 16 in 1st level dirs; 256 in 2nd level
dirs.

Facendo clic sul pulsante Initialize cache (as Unix user "proxy"), Squid dovrebbe essere operativo.

Bloccare l'accesso ai siti web con le ACL di Squid


Le Access Control List (ACL) sono le regole che Squid utilizza per stabilire se concedere o meno
l'accesso ad un sito web richiesto da parte di una macchina client.

Dalla finestra principale di Squid Proxy Server, in Webmin, bisogna cliccare sull'icona Access
Control.
Com'è possibile verificare, Squid utilizza già un insieme di regole preimpostate. Le regole di
accesso vere e proprie sono impostabili mediante la scheda Proxy restrictions.
Per impostazione predefinita, Squid blocca gran parte delle connessioni in uscita. Suggeriamo
quindi di cliccare sull'ultima voce Deny all e trasformarla in Allow (all):

Non bisogna dimenticare di fare clic sul pulsante Save. Tornati nella finestra principale di Squid
Proxy Server, suggeriamo di fare clic su Clear and rebuild cache.

Per bloccare Facebook ed impedire quindi qualunque tentativo di connessione al social network di
Mark Zuckerberg, è necessario cliccare sull'icona Access Control, sulla scheda Access control lists,
scegliere Web Server Hostame quindi fare clic su Create new ACL:

Nella schermata successiva si potrà digitare un nome per la nuova regola (ad esempio
nofacebook) quindi .facebook.com nel campo Domains:
Facendo clic su Save bisognerà abilitare la regola selezionando la scheda Proxy restrictions e
cliccando su Add proxy restriction.

Selezionando Deny quindi nofacebook dall'elenco Match ACLs, l'accesso a Facebook da parte di
qualsiasi client sarà automaticamente bloccato.
Cliccando su Save, la regola appena aggiunta sarà inserita in fondo alla lista. Dal momento che le
voci che vengono prima in elenco hanno maggiore priorità, è necessario spostare l'ultima regola
sopra Allow all. Il riposizionamento della regola può essere effettuato cliccando sulla freccia a
destra:
Ecco il risultato:

Per rendere operativa la nuova regola, bisognerà ricordarsi di fare clic sul link Apply Changes in
alto a destra.
In caso di difficoltà, è sempre bene far riferimento all'icona Clear and rebuild cache.

Impostando l'utilizzo del proxy 192.168.1.100 (porta 3128) nel browser web utilizzato sulla
macchina collegata al router 192.168.1.1, ci si accorgerà come Squid sia già in grado di bloccare
qualunque tentativo di accesso a Facebook permettendo la connessione a qualunque altro sito web.

Il nostro intento, però, è quello di allestire un proxy trasparente che non preveda l'alterazione
della configurazione della rete o del browser sui sistemi client connessi in rete locale. La
macchina Squid sarà la sola connessa al router 192.168.1.1 (la porta d'accesso sulla rete Internet)
attraverso la prima scheda mentre alla seconda scheda verrà collegato un hub insieme con tutti i
sistemi client della LAN.
Per fare in modo che Squid operi come un proxy trasparente, è necessario tornare ancora una
volta al prompt di Ubuntu Server e digitare quanto segue:

sudo nano /etc/squid3/squid.conf

Con la combinazione di tasti CTRL+W si potrà andare alla ricerca della stringa http_port
3128.
Alla fine di tale linea bisognerà aggiungere il parametro transparent:

Al solito, le combinazioni di tasti CTRL+O e CTRL+X permetteranno di salvare e chiudere il file di


configurazione.

La modifica successiva può essere apportata digitando il comando seguente:


sudo nano /etc/rc.local

All'interno del file rc.local è indispensabile che figuri quanto segue:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j


REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
exit 0

Le combinazioni di tasti CTRL+O e CTRL+X permetteranno di salvare e chiudere il file di


configurazione.
Infine, bisognerà digitare il comando seguente:

sudo nano /etc/sysctl.conf


Con la combinazione di tasti CTRL+W si potrà andare alla ricerca della stringa
Net.ipv4.ip_forward.
Una volta individuata bisognerà togliere il segno # (il cancelletto) che la precede. Analoga
operazione dovrà essere effettuata sulla successiva Net.ipv6.conf.all.forwarding.

Ancora una volta, CTRL+O e CTRL+X permetteranno di salvare e chiudere il file di configurazione.

È giunto il momento di riavviare la macchina Linux con il comando sudo reboot.

Installazione del server DHCP

Per fare in modo che i client possano connettersi direttamente alla macchina Ubuntu Server
equipaggiata col proxy Squid, senza la necessità di impostare manualmente gli IP corretti, si potrà
accedere nuovamente al pannello di amministrazione di Webmin
(http://192.168.1.100:10000) quindi selezionare la voce DHCP Server dalla sezione Un-
used Modules.

Qui, bisognerà poi cliccare su Click here in modo tale da richiedere il download e l'installazione
automatica del server DHCP.

Ad installazione avvenuta, sempre da DHCP Server, è necessario cliccare sul link DHCP module
configuration e togliere il numero "3" da tutti i percorsi ottenendo quanto in figura:

Dal menù principale del DHCP Server, è quindi necessario cliccare sul link Add a new subnet:
In corrispondenza di Subnet description va indicato lan, 10.0.2.0 nel campo Network address,
10.0.2.101 e 10.0.2.255 in Address ranges, 255.255.255.0 come Subnet mask.

Dopo aver fatto clic sul pulsante Create, si dovrà cliccare sull'icona 10.0.2.0:

Cliccando sul pulsante Edit client options si potranno specificare i server DNS da comunicare
dinamicamente ai client via a via connessi (DNS servers).
Cliccando su Save ed ancora su Save bisognerà infine cliccare sul pulsante Edit Client Options in
basso.
Qui bisognerà eliminare l'indicazione example.org ed i server DNS preimpostati (vanno selezionare
le opzioni Default).
È tutto pronto! Suggeriamo di effettuare un reboot della macchina Linux.
Tutte le macchine della rete locale connesse sulla seconda interfaccia (10.0.2.x), dovrebbero così
ricevere un IP dal server DHCP di Ubuntu.
In Windows, è possibile servirsi dei comandi ipconfig /release e ipconfig /renew
dal prompt per richiedere un nuovo indirizzo IP.
Digitando ipconfig /all è possibile verificare se Ubuntu Server ha fornito un IP ed i server
DNS da utilizzare:

Il comando TRACERT www.google.it ben evidenzia come le richieste di connessione


transitino attraverso il proxy server Squid (IP 10.0.2.100) e solo successivamente passino attraverso
il router ADSL (IP 192.168.1.1):

Da qualunque macchina connessa alla rete locale, usando un qualsiasi browser, ogniqualvolta si
proverà a connettersi con Facebook si riceverà il messaggio seguente:
Agendo sulle ACL di Squid, sempre dal pannello di amministrazione web, sarà possibile aggiungere
una vasta schiera di regole. Si potranno bloccare siti web basandosi sull'indirizzo mnemonico,
sull'IP oppure, addirittura, impedire l'uso di specifici browser dalla rete locale (Browser Regexp).
Basterà indicare il corrispondente user agent o parte di esso.

Potrebbero piacerti anche