Encripta tu tráfico DNS con DNSCrypt

Encriptar el tráfico HTTP ya es algo habitual (o debería serlo) en cualquier sitio web que contenga información confidencial, desde tiendas online y webs bancarias hasta nuestro propio correo (en Gmail es la configuración por defecto, en otros servicios como Hotmail tenemos que activarlo manualmente).

¿Pero qué pasa con nuestro tráfico DNS? Cada vez que accedemos a una página web estamos enviando la URL a un servidor para que éste nos diga cual es la dirección IP correspondiente, y aunque no nos estemos dando cuenta será esa IP la que use realmente nuestro navegador para conectar.

Toda esta información está viajando entre nuestro ordenador y el servidor DNS de forma totalmente visible para cualquiera que pueda estar observando. En principio no es una información especialmente confidencial que queramos ocultar pero ¿qué pasa si alguien se coloca entre nuestro pc y el servidor DNS y nos devuelve IPs incorrectas para nuestras solicitudes? Nos podemos encontrar con que, sin darnos cuenta en absoluto, cuando ponemos la URL de nuestro banco en el navegador la página que nos aparece sea una copia perfecta esperando a que metamos nuestros datos para robárnoslos.

Para evitar esta y algunas otras cosas tenemos la opción de encriptar este tráfico con DNSCrypt.

Este método es válido para cualquier versión de Linux, aunque el paso en el que se configura el servicio para que arranque con el sistema es específico para Ubuntu ya que otras distribuciones tienen sus métodos particulares para gestionar servicios.

En primer lugar necesitamos instalar dnscrypt. No está disponible desde los repositorios, así que tendremos que descargarlo desde el GIT del proyecto:

https://github.com/opendns/dnscrypt-proxy/downloads

Lo podemos instalar haciendo click sobre el archivo descargado. Yo como soy algo friki prefiero hacerlo desde la consola:

sudo dpkg -i dnscrypt-proxy_0.9_i386.deb

El siguiente paso es configurar el servicio para que arranque con el sistema. Podemos descargar este script de upstart:

DNSCrypt Upstart
DNSCrypt Upstart
dnscrypt-0.2.tar.gz
Version: 0.2
259.0 B
140 Downloads
Details...

Lo extraemos y lo copiamos al directorio correspondiente:

sudo cp dnscrypt.conf /etc/init
sudo ln -s /lib/init/upstart-job /etc/init.d/dnscrypt

Ya podemos arrancar el servicio:

sudo start dnscrypt

Si en algún momento quisiéramos detenerlo lo haríamos así:

sudo stop dnscrypt

Sólo nos falta configurar nuestra conexión para que use este servicio como DNS. Abrimos la configuración de red y ponemos la dirección 127.0.0.2 como servidor DNS:

Si estamos usando DHCP (bastante probable) tendremos que seleccionar en el desplegable “Método” que sólo nos coja la dirección por DHCP, de forma que nos permita indicar manualmente los servidores DNS.

Guardamos la configuración y listo.