Instalar DNSCrypt

Hoy voy  a explicar cómo instalar una herramienta que cifrará todas las consultas DNS que hagamos. Empezaremos explicando cuál es una de las funciones que más se utiliza de un DNS. Si no te interesa o ya sabes qué es, te sugiero que te saltes los dos siguientes párrafos.
DNS son las siglas que significan Domain Name System (Sistema de Nombres de Dominios). Llanamente, lo que hacen es traducir un nombre de dominio a una IP. Explicaré el proceso que sigue el navegador al meter en la barra de direcciones un dominio, para que quede más claro.

Cuando ponemos en la barra de dirección, por ejemplo, https://duckduckgo.com, el navegador, lanza una consulta a la base de datos distribuida y jerárquica que usa, y esta le devuelve una dirección IP, en este caso 46.51.197.89. Podemos comprobarlo poniendo esta dirección IP en el navegador. Si alguien se pregunta cómo averiguar la dirección IP de una página web, sólo hay que abrir una terminal y escribir ping dominio.com, donde dominio.com es la dirección de la que queremos saber la IP.

La consulta mencionada antes se hace siempre en texto plano. Es decir, no está cifrada y cualquiera puede verla. Por eso, vamos a instalar DNSCrypt, qué cifrará nuestra consulta desde nuestro ordenador, proporcionando seguridad en nuestra red interna, y el servidor DNS que tengamos asignado., lo que proporcionará seguridad una vez la consulta haya salido de nuestro router a Internet.

DNSCrypt

Cómo ya he explicado, esta herramienta cifra el tráfico DNS de nuestro ordenador al servidor DNS. Esto nos servirá para evitar ataques Man-In-The-Middle, DNS poisoning y para evitar censuras por parte del ISP.

Para Windows hay un instalador muy sencillo de usar, por lo que sólo explicaré la instalación en Debian/Ubuntu. En principio debería funcionar para GNU/Linux en general, pero sólo lo he probado en Debian.

Antes que nada, debemos instalar un paquete llamado libsodium de la que DNSCrypt depende. Descargamos la última versión del paquete, en este caso la versión 0.4.5, de esta página.

Recomiendo tener un directorio sólo para los archivos que compilamos, para poder tenerlos controlados y desinstalarlos si fuese necesario. Una vez descargado, vamos al directorio en el que hayamos descargado el paquete mediante el comando cd y sólo tenemos que descomprimirlo, compilarlo y ejecutarlo:

su
tar xzf libsodium-0.4.5.tar.gz
cd libsodium-0.4.5
./configure
make && make install

Explicación:

  • su: Cómo ya hemos explicado en anteriores tutoriales, sirve para usar el usuario root.
  • tar: Sirve para descomprimir. En este caso le pasamos los parámetros x, para extraer, z, porque el archivo está comprimido con gunzip (extensión *.gz) y f, para concretar que archivo queremos.
  • cd: Sirve para cambiar de directorio.
  • ./configure: Poniendo ./ delante de un script, lo ejecutamos. El archivo configure sirve para comprobar si te hace falta algun paquete del que depende el archivo a compilar. Además, crea el archivo makefile, que es el que usa el comando make.
  • make: Compila el programa.
  • make install: Mueve el archivo compilado al directorio /local/usr/bin, para que podamos usarlo desde la terminal sin invocar toda la ruta del archivo.

Ahora podemos proceder a instalar la herramienta en cuestión. Lo primero será descargar el comprimido tar.bz2 de la página dnscrypt.org/dnscrypt-proxy/downloads
Iremos al directorio en el que lo hemos descargado, y lo descomprimiremos usando el siguiente comando, siendo * la versión que hayamos descargado:

bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf -

Explicación:

  • bunzip2: Descomprime archivos con la extensión *.bz2.  El parámetro c, comprime o descomprime con la salida estándar, y el parámetro d, descomprime.
  • El carácter |: Sirve para juntar dos comandos. En este caso, ejecuta primero el comando bunzip2 y después el comando tar, ya que este archivo está comprimido con ambos métodos.

Una vez descomprimido entramos en el directorio mediante el comando:

cd dnscrypt-proxy-*

Ahora ya solo queda compilarlo y instalarlo:

./configure && make -j2
make install

El parámetro -j2 indica que usemos dos núcleos de la CPU. Podemos poner el número que queramos, cuanto más alto más rápido irá. El máximo que podemos poner dependerá de los núcleos que tenga nuestra CPU. El programa se instalará en /usr/local/sbin/dnscrypt-proxy por defecto.

Y con esto, ya lo tenemos instalado. Su uso es el siguiente.

dnscrypt-proxy -d --resolver-address=113.20.6.2:443 --provider-name=2.dnscrypt-cert.cloudns.com.au  --provider-key=1971:7C1A:C550:6C09:F09B:ACB1:1AF7:C349:6425:2676:247F:B738:1C5A:243A:C1CC:89F4

Explicación:

  • dnscrypt-proxy: Es el nombre del programa.
  • -d: Sirve para que el programa corra en segundo plano.
  • –resolver-address: La dirección IP del servidor DNS.
  • –provider-name: El nombre completo del servidor que proveerá el certificado de DNSCrypt.
  • –provider-key: La clave del servidor DNS.

Yo he escogido este DNS, pero vosotros podéis escoger cualquier otro. En la página oficial de DNSCrypt viene una lista con distintos servidores DNS, con sus diferentes características.

Una vez establecido el proxy, sólo nos quedará un paso más por hacer. Empezar a usarlo.

Para hacerlo sólo tenemos que poner en el DNS que usamos la ip 127.0.0.1, qué es la nuestra. Podemos hacerlo mediante la interfaz gráfica, yendo a Redes nos aparecerá una ventana cómo la siguiente:

Conexiones de red_005

Le damos a Editar, (En la pestaña Cableado o Inalámbrico, depende de lo que usemos) y nos aparecerá otra ventana cómo la inferior.

Editando Ethernet automática_007

Entonces, vamos a la pestaña Ajustes de IPv4, y ponemos la dirección 127.0.0.1 en el apartado pertinente.

Editando Ethernet automática_008

Y ya sólo queda hacer que se establezca de nuevo cada vez que reiniciamos. Podemos hacerlo copiando el comando que hemos puesto arriba a /etc/rc.local.

Fuentes:

  • Página Oficial de DNSCrypt.
  • Manual de DNSCrypt. Una vez instalado, podemos acceder a el mediante el comando man dnscrypt-proxy.
This entry was posted in GNU/LINUX, Privacidad, Seguridad, Software Libre, Tutoriales and tagged , , , , . Bookmark the permalink.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *