Probabilmente molti di voi non sanno che quasi tutti i fornitori di ADSL privata e aziendale ISP (Internet Service Provider), obbligano il cliente a passare presso i propri DNS (Domain Name Server), anche per lo scopo di monitorarne il traffico, profilare le scelte dell’utente (e altro ancora…).

Tramite pochi semplici passaggi, avremo la possibilità di configurare il vostro calcolatore Linux connesso al vostro router e sarete finalmente liberi di navigare in Internet attraverso un servizio DNS libero da controlli e da vincoli commerciali.

Ci sono molti modi per riuscire a fare questo, oggi ve ne spiegherò uno dei più semplici, ma a patto che voi siate utilizzatori di un PC con sistema operativo Linux e possiate amministrare la vostra macchina.

Il metodo che vi vado a spiegare è davvero molto semplice, ovvero re-direzioneremo tutto il traffico di richiesta DNS lookup proveniente dalla porta 53 del vostro PC verso la porta DNS “alternativa” 5353 del vostro PC, porta poi gestita verso i DNS liberi e veloci di OpenDNS.
Per riuscire a far questo non sarà necessaria alcuna riconfigurazione del router ADSL ma semplicemente occorrerà aggiungere un paio di regole iptables al firewall integrato già presente nel kernel linux del vostro PC.

Procediamo aprendo un terminale ed eseguiremo (uno alla volta) i seguenti comandi come utente root:

# sudo su
# iptables -t nat -A OUTPUT -p udp –dport 53 -j DNAT –to 208.67.222.222:5353
# iptables -t nat -A OUTPUT -p tcp –dport 53 -j DNAT –to 208.67.222.222:5353

Questi due comandi (regole iptables) che avete appena inserito effettueranno il redirect di tutti i DNS lookup come vi ho spiegato nel paragrafo precedente.

I vantaggi di utilizzare i DNS di OpenDNS invece dei DNS del tuo ISP sono molteplici:

  1. OpenDNS potrebbe essere molto più veloce del DNS del tuo ISP
  2. Il concetto di base consiste nel utilizzare un servizio di risoluzione di nomi in indirizzi Internet (DNS) che non sia controllato da governi o enti militari al fine di evitare censura, vincoli e controllo sul traffico internet e i suoi contenuti.
  3. Potete accedere anche a quei siti che vengono altrimenti bloccati dai maggiori DNS degli ISP italiani (LOL!).

Siti di riferimento:
http://www.ckollars.org/dns-intercepting.html
http://unix.stackexchange.com/questions/144482/iptables-to-redirect-dns-lookup-ip-and-port
http://dhanar10.blogspot.it/2014/08/one-way-to-bypass-isp-dns-interception.html
https://www.opendns.com/home-internet-security/

10 risposte su “Un modo sicuro per aggirare il DNS imposto dal vostro ISP con Linux

    1. Certo che si, se il router non è proprietario del fornitore dell’ADSL (ISP). Con un router proprio è infatti possibile configurare anche i DNS desiderati, mentre in quelli forniti dall’operatore telefonico è possibile configurare ben poche variabili.
      È il fornitore telefonico ADSL che desidera questo per un proprio tornaconto.
      Saluti, Paolo

    1. Salve procustex,
      se si desiderasse ritornare allo stato iniziale, (ovvero riportare le regole di iptables com’erano all’origine), basta dare i seguenti comandi per cancellare le due regole aggiunte:

      # iptables -D nat OUTPUT -p udp –dport 53 -j DNAT –to 208.67.222.222:5353
      # iptables -D nat OUTPUT -p tcp –dport 53 -j DNAT –to 208.67.222.222:5353

      Per ogni informazione e dettagli sull’uso delle regole di iptables, aprite un terminale e digitate:
      # man iptables

      o anche:
      # iptables –help

      Buon proseguimento,
      Paolettopn

  1. Impostando i DNS di OpenDNS direttamente nelle connessioni, invece di lasciarli impostare dal DHCP del provider rende la cosa più semplice. Inoltre nella maggior parte dei router ( a parte certe porcherie rifilate dai provider come fanno Vodafone e Telecom) si possono impostare gli indirizzi da far assegnare tramite il DHCP. Tra l’altro una simile soluzione è indipendente dal sistema operativo del PC.
    Il fatto poi di usare DNS alternativi non limita molto la capacità di controllo da parte del provider, che comunque riceve tutte le richieste di accesso a indirizzi remoti.

    1. Concordo in toto con quanto scritto da Amedeo,
      infatti il mio post era dedicato solo a coloro che hanno un PC con S.O. Linux, connesso dietro ad un router dei soliti fornitori ADSL italiani (era specificato anche nel post iniziale).
      Resta chiaro il fatto che avendo acquistato un proprio router si possono configurare direttamente li i DNS preferiti e altri settaggi da utilizzare…. ma qui andiamo a spiegare l’utilizzo standard del PC in rete (fatto per il quale il post non era stato scritto).

      Per quanto poi riguarda Vodafone, concordo con l’ultimo paragrafo scritto da te… ma purtroppo è già cosa nota.

      Buona navigazione,
      Paolettopn

  2. Provato su LinuxMint ma mi da errore. Prima mi dice che “–dport” non è riconosciuto, e poi quando cambio in “-dport” che l’argomento 53 è errato.

    Grazie

    1. Ciao Julo,

      sono andato a controllare il mio post prima di risponderti; ti informo che il comando di terminale descritto è corretto. Davanti all’opzione dport ci sono 2 trattini; il problema è che alcuni browser spesso li visualizzano come uno solo.

      Il comando l’ho provato su un mia versione di Ubuntu e ha funzionato senza alcun problema. L’importante è seguire quanto è stato scritto nel post.

      Ovviamente il comando iptables va dato da utente root, altrimenti inserisci il comando sudo prima del comando iptables.
      Con il primo comando sudo su avevo previsto di permettere all’utente connesso di poter agire come utente root, ma se l’utente connesso non è stato inserito in precedenza tra gli utenti sudoers, questo non può avvenire.

      A presto rileggerti,
      PG

      1. Grazie, adesso funziona. (sulla faccenda del sudo dopo tanti anni di linux ….). Però per attivare i nuovi DNS ho dovuto riavviare.

        Visto però che la connessione mi risulta più lenta, ho provato a tornare indietro con i due comandi che davi in una risposto. Ma mi dice che non si può usare -D in presenza di -A.

        1. Ciao,
          a parte consigliarti di conoscere meglio il mondo di iptables, sappi che i comandi descritti nel post mi hanno funzionato al primo colpo (unix e linux sono una certezza…).
          Da terminale, consulta l’help in linea con:
          man iptables

          Per eliminare i comandi dati in precedenza con iptables, devi SOSTITUIRE l’opzione -A con l’opzione -D e NON digitarle assieme nella stessa stringa.

          Per conoscere quali regole di iptables sono attualmente in esecuzione nel tuo sistema operativo, ti basterà controllare digitando il comando:
          sudo iptables -L oppure sudo iptables –list

          Buon proseguimento,
          PG

Lasciate un vostro commento