Qualche giorno fa ero presso la sede di un cliente che utilizza come dns remoti quelli di OpenDns, il noto servizio pubblico di risoluzione nomi di dominio. E’ un servizio che aveva fatto molto scalpore al momento del suo lancio, ormai qualche anno fa’, e che poi è calato nell’ombra che spetta ai servizi che funzionano e non fanno (troppo) scalpore. I vantaggi che in OpenDns vanno promuovendo per i loro servizi sono:
- L’indipendenza dal provider (ovunque con una sola coppia di indirizzi ip, comodo soprattutto per coloro che, portatile alla mano, “migrano” in giro per il mondo)
- I servizi aggiuntivi di sicurezza (protezione dal phishing e content/domain filtering)
- I servizi di correzione degli errori negli url (ad un .og viene sostituito automaticamente .org e via dicendo)
- L’affidabilità dei loro sistemi, virtualmente “zero-downtime” (se paragonati all’affidabilità media dei nostri provider internet… :/)
Presentato così, il servizio offerto da OpenDns sembrerebbe essere una vera manna dal cielo, soprattutto per gli internauti italiani che proprio con i servizi dns dei provider hanno avuto alcune recenti disavventure (come dimenticare il mitico collasso di un anno fa’…). Eppure, a guardare più in profondità, si scoprono una serie di cose piuttosto fastidiose, problemi che complicano notevolmente la vita agli utenti al punto che, spesso e volentieri (ed è il mio caso) si rinuncia ad usare il servizio. Come tutte le cose belle infatti, esiste un rovescio della medaglia:
- Il sistema di “correzione degli url” rompe le scatole agli altri servizi che fanno affidamento sullo standard DNS per il loro funzionamento. Correggendo infatti l’url, e soprattutto redirigendo su una propria pagina tutti gli url sbagliati, OpenDns risponde positivamente a tutte le query DNS, indipendentemente che il dominio esista o meno, rendendo impossibile, basandosi sul solo protocollo DNS, capire se tutto funzioni correttamente o meno. Modificare uno standard non è mai una buona idea, ma questo è solo un problema minore che però infastidisce parecchio gli amministratori di sistema, che sono costretti ad un lavoro extra, fosse anche solo il filtrare le risposte che vengono ricevute da quelle che risolvono con gli ip di OpenDns (che magari poi non sarà sempre uno, no?), per far funzionare quegli script che altrimenti si metterebbero in piedi in 10 minuti netti.
- Se provate a risolvere, http://www.google.com usando OpenDns, vi troverete di fronte ad un risultato particolarmente carino:
;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 30 IN CNAME google.navigation.opendns.com. google.navigation.opendns.com. 30 IN A 208.69.34.231 google.navigation.opendns.com. 30 IN A 208.69.34.230
L’utente di OpenDns che vuole utilizzare Google (curioso come poi tutti i domini nazionali risolvano allo stesso modo) vengono inviati ad un server di opendns.com che riporta una pagina molto simile a quella del Google originale (quiz del giorno: scovate le differenze) che viene ospitata su questi server. La spiegazione ufficiale (e verosimile, seppure poco condivisibile) la troviamo qui, ma per i più paranoici, farò notare che questo significa dare a OpenDns la possibilità di monitorare tutte le connessioni che portano a Google degli utenti che sfruttano il loro servizio (e sapendo che tra Adsense e Google-Analytics il colosso di Montain View ha una pervasività della rete che si avvicina all’80%, possiamo immaginare che mole di dati, e di quale interesse, si trovi in possesso OpenDns). Leggetevi bene l’informativa sul trattamento di questi dati da parte di OpenDns… Per i meno paranoici, farò banalmente notare come questo riduca il numero di servizi comodamente utilizzabili accedendo alla homepage (reale) di Google, e anche questo potrebbe essere un danno minore, se paragonato agli ottimi servizi offerti gratuitamente.
- I servizi non sono poi cosi innovativi: Firefox stesso ha un sistema di protezione dal phishing (utilizzando le liste di Google, che con la base di domini sotto il suo controllo ha sicuramente i mezzi per riempirle adeguatamente), di correzione degli url errati (se il dns risponde con un dominio inesistente, Firefox chiede al motore di ricerca di Google di fornirgli un url alternativo che sia simile a quello digitato), ed è possibile fare content filtering usando un’apposita estensione. Tutto questo senza modificare in alcun modo un server dns. E qui è tutta scelta dell’utente, se usare un provider di servizi o un altro, anche a partire dalle sue esigenze, quindi, poco male.
- La cosa peggiore però, è che in OpenDns sembrano dimenticarsi dei concetti di “nat” (e del fatto che numerosi provider (Fastweb?) e “ip dinamico” per quel che riguarda il loro meraviglioso sistema di content-filtering. Se infatti un utente imposta un filtro per determinati host, OpenDns li applicherà a tutte le richieste provenienti da quell’indirizzo IP, senza curarsi che questo potrebbe essere l’IP di un nat (e quindi mascherare una schiera di utenti piuttosto ampia, parte dei quali vorrebbero magari utilizzare lo stesso servizio OpenDns ma senza quei filtri) o ancora peggio l’ip dinamico di una ADSL, che verrà quindi riassegnato poi ad un altro utente il quale si troverà (se usa OpenDns ben inteso) con dei filtri impostati dei quali non sà nulla (e sfido voi a fare il debug di un problema tipo “a volte certi siti non vanno” e giungere alla conclusione che è OpenDns…).
Ecco quindi brevemente spiegato il perché io continui ad usare dns miei (o del mio provider, se non ho voglia/tempo/capacità di mettere in piedi uno stupido sistema di caching in locale), ed evito di utilizzare i (seppur meravigliosi) servizi di OpenDns.
E cosa utilizza al posto di OpenDns? Possiedo una connessione ADSL Fastweb, di recente ho comprato un server, ho due domini che puntano all’ip del server, però grazie a Fastweb e a i suoi DNS che si aggiornano molto lentamente ancora non riesco a vedere l’aggiornamento che ho effettuato su uno dei due domini. Per adesso li sto vedendo tramite la rete Tor però non è abbastanza veloce per le mie esigenze. Mi chiedo esiste un’alternativa valida?
La ringrazio per la disponibilità nel caso di un’eventuale risposta.
Al posto di OpenDns, uso direttamente una cache dns su una macchina locale…
Alternativamente, puoi usare direttamente i root server: 4.2.2.2 e 4.2.2.6 sono i root server di Level3 (facili da ricordare, per altro) che facendo query ricorsive ti consentono di inviare le tue richieste DNS a loro, ottenendo risposta.
Entrambe le opzioni suonano interessanti. Servono anche come misura preventiva verso i vari attacchi al sistema dns che si trovano in giro recentemente oppure bisogna andare oltre per quello?
Usare root-server sicuramente mette “al riparo” per quel che riguarda gli aggiornamenti (quei dns sono gestiti da gente preparata, solitamente). Un dns interno che faccia caching e che non esposto su internet non presenta grossi problemi…
So che è un post vecchio, ma vorrei ugualmente farti presente che:
1) Il servizio di correzione degli indirizzi non è quella cosa demoniaca che tu hai descritto. Devi creare uno script che controlla se un sito è raggiungibile? wget http://www.sito.it/index.htm; cat index.htm | grep opendns | wc -l …hai aggiunto un istruzione in più, non mi sembra la fine del mondo (senza parlare del fatto che probabilmente si può disabilitare questa opzione)…
2) Le soluzioni a questo problema sono molteplici. Se proprio non vuoi fidarti di opendns, la soluzione più semplice è quella di aggiungere l’IP di google al file hosts. Ad ogni modo non credo che si venga dirottati ancora sui server di opendns… la query effettuata da quì http://www.opendns.com/support/cache/ restituisce i siti di google.
3) Si, i servizi che OpenDNS offre sono implementabili in altri modi…ma se hai una rete di 100 computer e devi filtrare delle keyword, aggiornare il filtro anti-phishing ecc. la cosa diventa un po’ complicata….
4) Veramente per gli IP dinamici si può scaricare un programmino che provvede a fare il login su opendns e ad aggiornare automaticamente il tuo IP sui loro server. Per quanto riguarda il NAT…beh non credo che qualcuno che non abbia intenzione di filtrare delle keyword su una rete LAN intera, imposti il filtro direttamente su OpenDNS, ma mettiamo il caso che su una rete di 1000 computer tu voglia impostare il filtro su 9999 computer…puoi sempre impostare OpenDNS sul router e il DNS del tuo provider sul computer sul quale non vuoi che niente venga filtrato.
In conclusione, si possono trovare delle soluzioni o fare delle sterili critiche. Personalmente credo che la velocità e l’affidabilità di quei DNS valgano tutti questi “compromessi”.
Ciao Marco, hai ovviamente fatto bene a commentare, anche se il post non è nuovissimo 🙂
Le argomentazioni che porti sono interessanti (ed io non uso il servizio da quel dì), ma permettimi qualche osservazione:
1) perché cambiare il protocollo DNS? Una reply DNS senza indirizzo (quindi per un dominio che non esiste) svolge una funzione importante nel protocollo DNS! Metti un banale controllo antispam (il dominio esiste o no?), o semplicemente la funzione di Firefox che gira automaticamente da url a Google… Non basta uno script per aggirare il problema: non tutte le macchine con entry dns hanno un server web a bordo (mail server?), e l’idea di stravolgere uno standard continua a non piacermi.
2) E’ una bella novità 🙂 E non è solo per una questione legata al fidarsi o meno di OpenDNS in se… (inoltre ammetterai che aggiungere un host in hosts per un sistema ampio e complesso come quello di Google non sia proprio proprio una panacea :P)
3 e 4) Esistono i proxy: se hai una rete di 100 computer e non hai un router che ti permetta di fare inspection… prevedi di comprarlo 😛
Continuo a credere vere le cose che ho scritto nel post. E non sono sterili critiche: mi occupo di sistemistica ormai da qualche anno e di cose del genere ne ho fatte e viste parecchie. L’importante, a mio modesto parere, è il totale rispetto degli standard (per semplificare il lavoro a tutti). Dopodiché naturalmente OpenDNS non è una cosa demoniaca (ci mancherebbe altro), ma credo proprio che continuerò ad usare altro 🙂
Ok, sulla parte delle query DNS hai ragione. Continuo a non essere d’accordo su tutto il resto, però…
Le funzionalità di cui parli (correzione degli indirizzi e proxy su google) si possono facilmente disabilitare dal pannello di controllo e OpenDNS ti fornisce un programmino che ti permette di tenere aggiornato l’IP sui loro server e mantenere le impostazioni (oltre ad evitare che qualcun altro si ritrovi con le tue impostazioni…cosa decisamente improbabile, tra l’altro).
Insomma, ha dei vantaggi e degli svantaggi…se ti interessano le query DNS forse non dovresti usarlo, ma chi (come me) non ha queste esigenze non vedo perché non dovrebbe.
Esistono i filtri antipishing e tutto quello che vuoi, ma dei sistemi di protezione dalla parte dell’utente si possono facilmente fottere con i virus, mentre se sono dalla parte del DNS, beh…
Comunque vorrei farti presente che c’è anche un filtro per i contenuti. In pratica puoi filtrare i siti porno, violenti ecc… una manna dal cielo, insomma. Si può impostare con un click invece che perdere la testa ad installare e testare programmi di dubbia provenienza che “forse funzionano” (e chi si è mai interessato all’argomento sa cosa voglio dire).
Saluti,
Marco.
Ma io Marco non ho detto che consiglio di non usarlo. Sto spiegando perché IO non lo uso, quali sono le mie motivazioni. Tra l’altro, dentro fastweb, non è per nulla improbabile trovarsi con le impostazioni di un altro utente (anzi, direi che è la norma visto che tutte le connessioni escono da una decina di ip in totale)…
Per quel che riguarda poi i filtri anti-phishing, non sono certo un’esclusiva di OpenDNS: esistono liste online (da Google in poi) e anche altri servizi DNS standard-compliant che consentono lo stesso risultato, come FoolDNS…
Per quel che invece riguarda i filtri su contenuto, sono sempre dell’opinione che non c’è blacklist che tenga: se vuoi fare le cose fatte bene l’unico approccio vincente è quello delle whitelist, e devono poter essere modificate non per ip, ma per client che si connette (e qui torniamo al discorso del nat…)
Si, in effetti ho interpretato male il tuo post. Tra l’altro non avevo neanche preso in considerazione la questione di fastweb.
Comunque io non sono così pazzo da creare una sita di listi che è possibile visitare…se hai tutta questa pazienza, buon per te.. 🙂
E’ una questione di metodo. Se non fai così, qualcosa ti sfuggirà sempre, rendendo di fatto inutile il tutto. In ogni caso, la scelta di filtrare il contenuto di internet non è una scelta da prendere sotto gamba, comporta una serie di conseguenze piuttosto “invasive”…
se hai dei figli o dei fratelli più piccoli, non è che ci sia molta scelta…
La scelta è catalogare 10-100-1000 siti che non vuoi fargli vedere e bloccare quelli? E secondo te in 10 minuti di Google non trovano un altro sito che tu avresti voluto bloccare e ti è sfuggito? Capisci che è una battaglia persa in partenza?
si, ma su questo siamo d’accordissimo! infatti non discutevo della possibilità di mettere in blacklist manualmente TUTTI i siti “a rischio”…io stavo parlando della possibilità che OpenDNS offre di filtrare automaticamente TUTTI i siti che non vorresti che tua sorella/quellochesia veda.
OVVIAMENTE non saranno tutti…però si presuppone che un server DNS sappia cosa filtrare e cosa no…
Poi se mi parli del lato teorico, si, TEORICAMENTE la white list è la soluzione ideale…teoricamente ogni persona dovrebbe avere un antivirus e un firewall…ma nella pratica le cose non sono proprio così…soprattutto se devi mettere in white list qualche centinaio di siti…per non parlare del fatto che la lista sarebbe in continua evoluzione e mantenerla costerebbe del tempo…non credi?
Salve,
premetto che in materia so davvero zero.
Da giorni ero afflitto da uno strano problema, continuo.
Dal mio pc, e specifico SOLO dal mio, non era possibile collegarsi ad un determinato numero di siti (non molti), ma tra questi vi era facebook e hotmail.
Ho passato nottate a cercare soluzioni sui forum e scaricando una 20ina di tool di riparazione, diagnosi, anti malware, anti virus… la situazione non cambiava.ù
Aggiungo che in casa ho altri 4 pc connessi come il mio wireless alla stessa linea, e questi invece “vedevano” tranquillamente i siti che io invece non potevo, ottenendo solo una pagina bianca in infinito caricamento.
Oggi trovo questa pagina e per curiosità cambio i miei DNS (ho sempre usato OpenDNS sotto suggerimento di un “amico esperto”)
Ora tutto funziona. Quindi prima di tutto grazie.
Secondo : per ora ho messo dei DNS trovati in giro e consigliati, potrei metterne di migliori?
Potresti spiegarmi in parole povere perchè avevo questo problema??
Il motivo per cui avevi quel problema (assodato che era legato al DNS), lo ignoro, avrei bisogno di un po’ più di dati (configurazioni di rete dei vari pc, configurazione di opendns riguardo il tuo indirizzo ip…).
Altri DNS: o quelli del tuo provider o quelli di Google (8.8.8.8 e 8.8.6.6)
Beh immagino, posso dirti che comunque tutti i pc credo siano stati configurati in maniera molto simile poichè è stato fatto dalla stessa persona, solo io, sul mio cambiai i DNS mettendo gli OpenDNS.
Cosi arrivo all’altra tua domanda, come li ho configurati… Li ho semplicemente inseriti a mano come viene descritto in rete, non ho configurato altro.
Un’altra domanda se posso : che ne pensi del programma gratuito Namebench?
Può realmente servire a proposito di DNS?
http://code.google.com/p/namebench/
Namebench è sicuramente un test affidabile, che puoi tranquillamente riprodurre anche da te (tenendo naturalmente conto del caching del dns in esame). Sulle configurazioni ti direi che se il tuo era l’unico pc con OpenDNS e contemporaneamente l’unico che aveva problemi, è facile (ma non necessariamente corretto) collegare le due cose.
Beh, collegabili o no, resta il fatto che dopo giorni di problema e soluzioni inutili, trovo questo blog, cambio i DNS, e il problema è sparito all’istante…
Ti ringrazio ancora.
Capisco. Quali alternative consigli per filtrare i siti con contenuto pornografico? Grazie