Instalar DNSCrypt en GNU/Linux

dnsHoy vamos a explicar cómo instalar una herramienta que cifrará todas las consultas DNS que hagamos, DNSCrypt

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.

Cuando ponemos en la barra de dirección, por ejemplo, https://duckduckgo.com, el navegador, lanza una consulta a la base de datos 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 con los medios y conocimientos adecuados 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

del 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
  • ldconfig

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.
  • ldconfig:  Crea  los  vínculos  y  caché necesarios a las bibliotecas compartidas.

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/download.

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

. Sobretodo, hay que ponerlo antes de la línea que pone exit 0, sino, no se ejecutará!

Fuentes:

  • Página Oficial de DNSCrypt.
  • Manual de DNSCrypt. Una vez instalado, podemos acceder a el mediante el comando man dnscrypt-proxy.

Acerca de drymer

drymer
Futuro ingeniero, debianita y curioso. Promuevo la privacidad allí donde voy. Me gusta aprender y compartir, aunque no sepa mucho.

Visita también

Securizando peticiones DNS con TOR

En otro articulo ya vimos como centralizar todas las peticiones DNS, pero al final se …

Deja una respuesta

18 Comentarios En "Instalar DNSCrypt en GNU/Linux"

Notificarme las
avatar
trackback

[…] de los problemas que me encontré es la forma de instalar DNScrypt en Semplice. DNScrypt, del que ya hemos hablado en esta web (se recomienda leer algunas de sus definiciones), es un proxy que cifra localmente los datos que […]

lanfree1989
Invitado

Hola amigos. Gracias por el tutorial.
Uso Debian Sid. He seguido todos los pasos, pero al hacer los cambios de IPv4 y reiniciar el admin de redes, si bien se conecta, pero parece que no consigue resolver el DNS, porque no puedo acceder a ninguna página. El DNS que he elegido es el mismo de vuestro ejemplo. ¿Cuál puede ser el problema?

Muchísimas gracias.

Noel
Admin

Es un artículo de hace un año, tal vez ese proxy esta caído, mira con otros de los existentes y si no trato de localizar al autor para que responda las dudas 🙂

liberto1989
Invitado

Hola Noel.

Gracias por tu respuesta. ¿Cómo puedo hacer para cambiarlo?, ¿puedo hacerlo desde un editor tipo gedit o mousepad?

Noel
Admin

Si claro, puedes emplear el editor de texto que más te guste, uno gráfico como los que tu dices, uno de terminal como nano o vi. Todos valen para lo mismo en este caso 😉

Mojito
Invitado

Gracias por la explicación detallada.

Me costó un poco conseguir los demás DNS, por otro lado seria bueno corregir los “–” largos por dos “–” cortos (:

Anonymous
Invitado

Hola, muy bueno el tuto!!
Pregunta: Cuando decis [quote]Podemos hacerlo copiando el comando que hemos puesto arriba[/quote]
A que comando te refieres?
Gracias!

Sergio
Invitado

Hola, he tratado de seguir las instrucciones paso a paso pero no logro completarlo, en un punto me da error: antes de realizar el make install de dns-crypt la orden anterior termina en:
configure: error: libsodium not found

Ojala me puedas ayudar
Saludos

BGBgus
Invitado

Repasa estos pasos:

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

Puede ser que el su no lo tengas habilitado, en ese caso, recominedo hacer el ./configure y el make && make install con un “sudo” delante. Quizás ldconfig también necesitarás sudo.

wpDiscuz