Con le informazioni contenute in questo articolo, riuscirete a rendere sicure le vostre comunicazioni di rete verso i server DNS, soprattutto se utilizzate dei router di ISP (Vodafone, Telecom, ecc.) che abitualmente impediscono la configurazione e l’utilizzo dei DNS liberi.
 
DNSCrypt utilizza un protocollo di rete per rendere sicure le comunicazioni tra il client PC e il server DNS, prevenendo tentativi di spionaggio, spoofing oppure attacchi come il man-in-the-middle.
Per riuscire a far questo è necessario installare un software chiamato dnscrypt-proxy, che viene utilizzato come resolver DNS locale o come forward DNS, provvedendo ad autenticare le varie richieste utilizzando il protocollo DNSCrypt e passando successivamente le vostre richieste al server indicato.
 
Ringraziamo Pascal Mons (che ha lavorato sul PPA iniziale di Sergey “Shnatsel” Davidoff, ma non aveva realizzato i pacchetti necessari per Ubuntu 14.04 o 14.10), che ci permette di installare facilmente il pacchetto in Ubuntu 14.04 e sue derivate. Il suo pacchetto utilizza l’indirizzo IP 127.0.0.2 come indirizzo IP locale su cui configurare il vostro network manager, indirizzo che non andrà a disturbare alcun altro servizio presente su Ubuntu. Inoltre, come ulteriore sicurezza, il pacchetto utilizza un user dedicato senza alcun privilegio – DNSCrypt effettuerà un chroot alla home di questo utente e gli permetterà dei privilegi di root solo quando gli sarà necessario.
 
La risoluzione IP standard di DNSCrypt-enabled utilizzata nel pacchetto di Pascal viene effettuata dal server DNSCrypt.eu Resolver #1 @ The Hague, Holland, ma questo è stato selezionato nel file di configurazione. Vi sarà possibile scegliere un altro server DNS e/o impostare un indirizzo IP differente, modificando il file con un normale editor:
 

 /etc/default/dnscrypt-proxy

e riavviando successivamente il servizio, con il comando da terminale:

sudo service dnscrypt-proxy restart

per rendere attive le modifiche apportate alla configurazione.

È possibile trovare una lista di DNS pubblici che supportano DNSCrypt, visitando questa pagina .

In accordo con Pascal, che non utilizza i server OpenDNS, lo stesso ha dato comunque la possibilità di cambiare / attivare altri DNS, inserendoli commentati all’interno del file di configurazione sopra citato.
 

Installare DNSCrypt (dnscrypt-proxy)
in Ubuntu 14.04 o 14.10 / Linux Mint 17.x  via PPA

1. Per poter scaricare il pacchetto DNSCrypt di Pascal via PPA e installare dnscrypt-proxy su Ubuntu 14.04 o 14.10, Linux Mint 17.x, Elementary OS Freya o altre distribuzioni Linux basate su Ubuntu 14.04/14.10 (comprese armhf), utilizzare i seguenti comandi da terminale:
sudo add-apt-repository ppa:anton+/dnscrypt
sudo apt-get update
sudo apt-get install dnscrypt-proxy
Nota: la descrizione presente nel PPA permette di avere delle informazioni su come controllare l’autenticità del codice utilizzato per costruire il pacchetto.
 

2. Successivamente all’installazione di DNSCrypt, è assolutamente necessario modificare la connessione di rete del PC, in quanto si dovrà impostare come nuovo indirizzo del server DNS, l’IP  127.0.0.2

3. Terminata la configurazione di rete, riavviate il vostro Network Manager (su Unity: selezionare l’indicatore delle connessioni di rete > Disabilitare le reti e successivamente riabilitare la connessione di rete utilizzata) e riavviate il browser web (nel caso l’avevate lasciato aperto).
 
Ora potete controllare se l’IP DNS “127.0.0.2” sta funzionando correttamente (probabilmente è utilizzato solo per il servizio DNS); per far questo, dall’indicatore delle connessioni di rete in Unity, selezionate  Informazioni Connessione. Troverete visualizzato il DNS primario 127.0.0.2 .
Siccome il pacchetto dnscrypt-proxy dei PPA di Pascal non utilizza OpenDNS di default, per effettuare facilmente un controllo su quale sia il DNS esterno al quale siete connessi, aprite un terminale e digitate il comando:
dig txt debug.opendns.com

Comunque è sempre possibile controllare quale server DNS state utilizzando, anche visitando la pagina https://dnsleaktest.com/ e avviando il DNS check.
Se non avete ancora cambiato nulla nel file di configurazione iniziale del pacchetto dnscrypt-proxy, visualizzerete delle informazioni simili a queste:

 

Un altro modo per controllare se dnscrypt-proxy sta lavorando, è quello di utilizzare questo comando da terminale:

sudo tcpdump -i NETWORK-INTERFACE dst host 176.56.237.171

… e successivamente visitare alcuni siti con il vostro browser web.

(nel comando sopra, sostituire NETWORK-INTERFACE con l’interfaccia di rete che state utilizzando, come: eth0, wlan0, p5p1, etc. Se non sapete quale interfaccia state utilizzando, la potete trovare attraverso il comando da terminale “ifconfig” . Nel comando sopra l’IP “176.56.237.171” è l’indirizzo di default del DNS utilizzato nel pacchetto di Pascal – se desiderate utilizzarne uno diverso, lo potrete fare modificando il file di configurazione decritto sopra, inserendone uno di vostro gradimento)

Avendo dato il comando precedente e avendo visitato qualche sito internet, il risultato in uscita nel terminale sarà simile a questo:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on p5p1, link-type EN10MB (Ethernet), capture size 262144 bytes
16:14:53.142488 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.142514 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.291372 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.291450 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.464624 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.464641 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.751950 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
16:14:53.815789 IP ubuntu-desktop.local.57467 > resolver1.dnscrypt.eu.https: UDP, length 512
Perfetto, ora il vostro servizio dnscrypt-proxy sta funzionando come deve. 
 
Per altre informazioni su DNSCrypt / dnscrypt-proxy, visitate queste pagine di riferimento:

Lasciate un vostro commento a questo post