.

Breaking News
recent

-

DNSCrypt: Cifrar el tráfico DNS en Ubuntu y Arch Linux

Después de leer esto:
¿Piensas que la criptografía te protege de la NSA? Piensa de nuevo

Te quedas con el miedo de que alguien en algún lugar de USA está viendo todo lo que haces, a algunos hasta se les quita el sueño. Obvio nos queremos proteger, pero nadie con cerebro quiere usar un servicio de google "como protección".

Como sabrán DNSCrypt es un servicio que nos brinda OpenDNS para proteger nuestras conexiones en estos tiempos tan controversiales.

Lo que hace es cifrar el tráfico entre nuestra maquina y el servidor DNS, así nos puede proteger de ataques del tipo man-in-the-middle, la mayoría (por no decir todos) los ISP no encriptan el tráfico así que nos dejan vulnerables en caso de que alguien quiera hacernos un ataque del tipo man-in-the-middle podrá escuchar, redireccionar e interceptar todo nuestro tráfico DNS.

En Arch Linux contrario a lo que se pensaría fue muchísimo más fácil instalar DNSCrypt ya que está en los repositorios oficiales, cómo no encontré una solución tan fácil para Ubuntu hago este post.

Para los usuarios de ArchLinux:

# pacman -S dnscrypt-proxy
Luego activamos el daemon con systemd
# systemctl enable dnscrypt-proxy.service
# systemctl enable dnscrypt-proxy.service


Como paso adicional podemos agregar los servidores de OpenDNS
# nano /etc/resolv.conf.head
208.67.222.222
208.67.220.220


Eso es todo


Comencemos, para el post uso Ubuntu 13.10


Dependencias:

Vamos a instalar los paquetes necesarios para compilar.
$ sudo apt-get install build-essential
Bajamos la librería libsodium necesaria para compilar DNSCrypt.
$ cd
$ wget http://download.libsodium.org/libsodium/releases/libsodium-0.4.1.tar.gz

Extraemos el .tar.gz e iniciamos el proceso de compilación.
$ tar -xvzf libsodium-0.4.1.tar.gz
$ cd libsodium-0.4.1
$ ./configure
$ make

Chequeamos que todo esté en orden.
$ make check
Si no tuviste problemas hasta aquí, continuamos con la instalación
$ sudo su
# make install
# exit

Los usuarios de Fedora y otras distros tendrán que crear el enlace simbólico, en este caso libsodium se instaló en la carpeta: /usr/local/lib



Instalación:

Antes de compilar DNSCrypt tenemos que ejecutar:
$ sudo ldconfig
Bajamos el código fuente de DNSCrypt e iniciamos la compilación
$ cd
$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.3.tar.gz
$ tar -xvzf dnscrypt-proxy-1.3.1.tar.gz
$ cd dnscrypt-proxy-1.3.1
$ ./configure
$ make

Continuamos con la instalación
$ sudo su
$ make install
$ exit

Si wget no baja nada, verificamos cual es la ultima versión aquí http://download.dnscrypt.org/dnscrypt-proxy/ y cambiamos el link después de wget

En mi caso dnscrypt-proxy se instaló en: /usr/local/sbin.
Puedes ver si a ti también se te instalo ahí haciendo
$ ls /usr/local/sbin



Configuración:

En este paso debemos configurar el servidor DNS:

Podemos hacerlo con networkmanager-indicator de una manera gráfica

Modificamos los valores "Método" y "Servidores DNS" dentro de la pestaña "Ajustes de IPv4"
DNSCrypt: Cifrar el tráfico DNS en Ubuntu y Arch Linux

Debería quedar así

Linux


Reiniciamos el network-manager
$ sudo restart network-manager

Aclaro que en esta parte de la instalación tuve que reiniciar el PC para poder continuar, recomiendo que también lo hagan



En este momento no tendrás conexión a internet temporalmente mientras configuramos...

Ejecutamos DNSCrypt:
$ sudo /usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096
Para ver todos los parámetros que acepta podemos ver la documentación

Ok, pero no apareció nada ahora ¿cómo sé que estoy protegido?
Entrando a la web http://welcome.opendns.com debería salir esto:

OpenDNS


Si hasta aquí todo te salió bien sería bueno hacer que dnscrypt se ejecute al inicio del sistema:
$ sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
     
exit 0

Pegando esto antes de exit 0
exec /usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096

En caso de errores en algún paso de la configuración pueden dirigirse aquí antes de preguntar:



Un poco de documentación:

libsodium : https://github.com/jedisct1/libsodium
dnscrypt : http://dnscrypt.org/
dnscrypt github : https://github.com/jedisct1/dnscrypt-proxy

No hay comentarios:

Publicar un comentario en la entrada

-

Con la tecnología de Blogger.