Come bloccare l'uso di server DNS alternativi all'interno della rete locale

Come impedire che gli utenti collegati alla rete locale possano utilizzare altri server DNS al posto di quello impostato sul router e comunicato via DHCP.

Chi gestisce un’azienda o uno studio professionale oppure chi ha un’attività commerciale di solito non desidera che i dipendenti o i clienti possano visitare qualunque tipo di sito web.
Ciò che si usa fare, quindi, è impostare un server DNS dotato di funzionalità per il filtraggio dei contenuti web sul router.

I server DNS 208.67.222.123 e 208.67.220.123, gestiti da OpenDNS, non permettono la risoluzione dei nomi a dominio corrispondenti a siti web che esercitano attività di phishing, che veicolano materiale pornografico, che offrono contenuti legati al gioco d’azzardo, ad alcool, droghe e così via.

Seguendo i suggerimenti pubblicati nell’articolo OpenDNS, come proteggersi durante la navigazione è addirittura possibile bloccare, sempre usando i server DNS di OpenDNS, altre categorie di siti web e controllare quali siti web i client collegati tentano di aprire.


Il fatto che i soggetti collegati a un router (sul quale siano impostati server DNS che effettuano un’azione di filtraggio) possano impostare sul proprio dispositivo server DNS alternativi che consentano la risoluzione di qualunque nome a dominio (e quindi anche di quelli corrispondenti a siti bloccati e sconvenienti) è ormai un segreto di Pulcinella.
In Windows basta infatti premere la combinazione di tasti Windows+R, digitare ncpa.cpl, cliccare con il tasto destro sull’interfaccia di rete (WiFi o Ethernet), accedere alla configurazione del protocollo IPv4 e impostare manualmente server DNS, ad esempio quelli di Google (8.8.8.8 e 8.8.4.4) per superare qualunque limitazione: DNS Google, ecco come funzionano e perché sono utili.

Come bloccare l’utilizzo di server DNS alternativi

C’è però un modo molto semplice per impedire ai client collegati con il router, via cavo Ethernet o WiFi, di ottenere la risoluzione per i nomi a dominio la cui visita non è consentita.

Portandosi nel pannello di configurazione del router (di solito accessibile digitando http://192.168.1.1 o http://192.168.0.1) nella barra degli indirizzi del browser, si dovrà accedere alla sezione Regole firewall, Firewall rules, Blocco servizi, Block services o similari quindi impostare due regole:

1) ALLOW TCP/UDP IN/OUT verso gli IP 208.67.222.123 e 208.67.220.123 sulla porta TCP/UDP 53
2) BLOCK TCP/UDP IN/OUT verso tutti gli indirizzi IP sulla porta TCP/UDP 53

La prima regola consiste nel permettere tutte le richieste di risoluzione dei nomi a dominio dirette verso i server DNS di OpenDNS (che devono essere specificati nella configurazione del router). La seconda, invece, blocca tutte le altre richieste di risoluzione DNS sulla porta 53.

Dal momento che la prima regola, ha priorità maggiore della seconda, tutte le richieste DNS saranno sempre dirette ai server di OpenDNS, anche nel caso in cui gli utenti avessero modificato la configurazione dell’interfaccia di rete sui loro client e impostato DNS alternativi.

Non tutti i router consentono di impostare un indirizzo pubblico verso il quale consentire o bloccare le richieste. In questi casi, quindi, si dovrà utilizzare un altro router oppure installare un firmware personalizzato come DD-WRT.

Gli utenti più smaliziati possono impostare due regole del genere sul router o sul firwall con il comando Linux iptables:

iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)

In questo modo, verranno intercettate tutte le richieste di risoluzione dei nomi a dominio e girate automaticamente ai server di OpenDNS.

Impostando queste due regole sul router o sul firewall e provando, da qualunque client collegato a digitare al prompt dei comandi nslookup www.nomedelsitodabloccare.com 8.8.8.8, si noterà come l’IP restituito non è più che quello del sito ma quello della pagina di OpenDNS che avvisa del filtraggio automatico (vedere anche Server DNS: come funziona e a cosa serve Nslookup).


In altre parole, anche impostando sul client i DNS di Google, la risoluzione dei nomi a dominio sarà sempre effettuata con i DNS di OpenDNS.


Nel caso in cui si volessero disattivare le due regole iptables, basterà usare i comandi seguenti:

iptables -t nat -D PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -D PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)

Un modo per superare la limitazione da parte degli utenti dei client collegati al router, è quello di annotare a priori (usando un’altra connessione di rete) l’IP corrispondente al nome a dominio d’interesse e modificare il file HOSTS locale: Come accedere ai siti bloccati.

Impostare il blocco dei DNS alternativi impostati sui client via Telnet e iptables

Noi siamo riusciti a modificare il comportamento di un router NETGEAR Nighthawk X4S D7800 che non permette di impostare regole firewall complesse dall’interfaccia web amministrando il dispositivo via Telnet (previa abilitazione dell’interfaccia Telnet da URL http://192.168.x.x/debug.htm) applicando la seguente procedura.
È importante rimarcare che tale procedura è appannaggio solo degli utenti più esperti e la modifica della configurazione di un dispositivo avviene sempre sotto la completa responsabilità di chi legge.
Inoltre, abbiamo effettuato con successo la modifica su un router in nostro possesso ma è assai probabile che lo stesso risultato possa essere raggiunto con dispositivi simili: l’importante è essere certi di ciò che si sta facendo e di non applicare modifiche avventate senza conoscerne esattamente le conseguenze.

1) Dal prompt di Windows abbiamo digitato il comando telnet 192.168.1.1 (dove 192.168.1.1 è l’IP del router).
Per usare Telnet è indispensabile installarlo in Windows digitando Attiva o disattiva funzionalità di Windows nella casella di ricerca del sistema operativo e spuntando la casella Client Telnet.

2) Dopo aver effettuato il login specificando le credenziali amministrative per l’accesso al pannello di amministrazione del router, abbiamo scritto:

vi ./etc/rc.common


3) Premendo il tasto i usando i tasti freccia ci siamo portati alla fine del file rc.common aggiungendo poi le seguenti due righe, già viste in precedenza (attenzione a non modificare nient’altro all’interno del file):

iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)


4) Abbiamo quindi premuto il tasto ESC per uscire dalla modalità modifica quindi scritto :wq e premuto Invio per salvare il file e uscire dall’editor Linux vi.

5) Digitando reboot abbiamo chiesto il riavvio del router e reso definitiva la modifica.

Per verificare se si stessero usando o meno i server DNS di OpenDNS, basta visitare da browser questa pagina.

Ti consigliamo anche

Link copiato negli appunti