DnsCrypt on Ubuntu Encrypted DNS Traffic

DnsCrypt on Ubuntu – Encrypted DNS Traffic

DNSCrypt is an authentication protocol that facilitates the communication between DNS clients and DNS resolvers.  It’s an effective tool to prevent DNS spoofing where traffic is diverted to fake websites by manipulating DNS servers. DNSCrypt uses cryptographic signatures to authenticate traffic sources. So it’s easier to detect any manipulation of incoming information. It’s an open specification with multiple free and open-source implementation. DNSCrypt clients are available for Windows, MacOS, Unix, Android, iOS, and Linux.

Available DNS Resolvers with DNSCrypt Capability

There are a number of public DNS server with support for DNSCrypt protocol. You can also run your own DNS resolver.

You will need a DNSCrypt client to communicate with these servers.

DNSCrypt Clients

One of the most popular clients is dnscrypt-proxy. It has both a command line and a graphical user interface. It’s up-to-date to current DNSCrypt protocol and it is supported on Windows, macOS, Linux, OpenBSD, FreeBSD, NetBSD, Android, and iOS.

There are other clients like Simple DNSCrypt and DNSCrypt-OSXClient.

Benefits of DNSCrypt Clients

The DNSCrypt clients have the following benefits:

  • Reviews traffic integrity in real-time and detects any manipulation.
  • Provides control over rejecting ads, trackers, spam, malware or other harmful sites.
  • Caches responses and avoids IPv6 requests on IPv4-only networks to improve latency.
  • Mandatory TCP use through TCP-only tunnels or Tor
  • Local zone queries are protected

DNSCrypt Client dnscrypt-proxy Installation on Ubuntu

For Ubuntu 14.x, you can use Pascal’s DNSCrypt PPA:

    $ sudo add-apt-repository ppa:anton+/dnscrypt    $ sudo apt-get update    $ sudo apt-get install dnscrypt-proxy    

For Ubuntu 16.x and 17.x, dnscrypt-proxy is part of the Ubuntu repository. So you can directly install using the following command:

    $ sudo apt-get install dnscrypt-proxy    

After installation, add 127.0.0.2 to your DNS servers on your network configuration.

Next, start the dnscrypt-proxy service using the following command:

    $ service dnscrypt-proxy start    

It will create a user called “_dnscrypt-proxy” and run the service as that user. Check the service status using:

    $ service dnscrypt-proxy status    

Verifying Successful Installation

The following link verifies successful installations:

https://www.opendns.com/welcome

A successful installation should show the following page:

Alternatively, you can use the following command line

    $ dig txt debug.opendns.com    

You should get output like:

  $ dig txt debug.opndns.com    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> txt debug.opndns.com  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 41412  ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0    ;; OPT PSEUDOSECTION:  ; EDNS: version: 0, flags:; udp: 4096  ;; QUESTION SECTION:  ;debug.opndns.com.        IN    TXT    ;; ANSWER SECTION:  debug.opendns.com. 0 IN TXT "server 11.ash"  debug.opendns.com. 0 IN TXT "flags 20 0 70 5950800000000000000"  debug.opendns.com. 0 IN TXT "originid 0"  debug.opendns.com. 0 IN TXT "actype 0"  debug.opendns.com. 0 IN TXT "source [REDACTED-YOUR IP]"  debug.opendns.com. 0 IN TXT "dnscrypt enabled (71447764594D3377)"    ;; Query time: 74 msec  ;; SERVER: 127.0.0.2#53(127.0.0.2)  ;; WHEN: Sat Dec 09 11:26:16 UTC 2017  ;; MSG SIZE  rcvd: 249  

Notice the debug.opendns.com. 0 IN TXT “dnscrypt enabled (71447764594D3377)” line. If you have a similar line that means your DNSCrypt protocol is working.

Related Posts
Leave a Reply

Your email address will not be published.Required fields are marked *