Cifra tu tráfico DNS con DNSCrypt Proxy en Ubuntu y navega más seguro


Internet seguro

DNSCrypt Proxy es una aplicación de código libre que tiene como finalidad cifrar el tráfico DNS de nuestra conexión para navegar con mayor seguridad. El programa cifra las peticiones DNS localmente y estas son descifradas luego por el proveedor de DNS, por lo que cualquier persona que intente interceptarlas en el camino (por ejemplo, para realizar un ataque man-in-the-middle) la tendrá muy difícil para conseguirlo.


Actualmente existe un buen número de proveedores DNS compatibles con DNSCrypt Proxy, y al ser software libre cualquiera con los conocimientos suficientes puede montarse su propio servidor DNS y configurarlo con el programa. Sin embargo, por defecto ya viene preconfigurado para usar con OpenDNS.

En esta entrada les voy a mostrar la instalación más simple y básica para el caso de Ubuntu y derivadas. Aquéllos que deseen una configuración más avanzada pueden consultar la página del proyecto y su repositorio en GitHub.

Instalación

Empezamos instalando el paquete de DNSCrypt Proxy desde el repositorio PPA mantenido por Sergey “Shnatsel” Davidoff:

sudo add-apt-repository ppa:shnatsel/dnscrypt
sudo apt-get update
sudo apt-get install dnscrypt-proxy

Con eso ya está instalado y corriendo, ahora solo nos queda indicarle al sistema que lo use. Para ello tenemos dos métodos, el primero por consola y el segundo en modo gráfico, escoge el que más te agrade:

Método 1

Desactivamos los DNS que se están usando actualmente:

sudo unlink /etc/resolv.conf

Creamos un nuevo archivo /etc/resolv.conf con un editor de texto:

sudo gedit /etc/resolv.conf

Y le pegamos esta línea para pasar el tráfico DNS por DNSCrypt:

nameserver 127.0.0.1

Ahora protegemos el archivo para evitar que Network Manager lo modifique:

sudo chattr +i /etc/resolv.conf

Para volver a modificarlo después hay que quitarle antes la protección con este comando:

sudo chattr -i /etc/resolv.conf

Luego pueden volver a protegerlo o no dependiendo de lo que quieran hacer.

Guardamos los cambios y cerramos el editor.

Método 2

Damos clic en el icono de red de nuestro panel y pulsamos Editar las conexiones. Ahora seleccionamos la conexión que tengamos activa y pulsamos en Editar. En la ventana que se abre nos vamos a la pestaña de Ajustes de IPv4 y veremos algo como esto:

DNSCrypt Proxy Network Manager

Configuramos las opciones como se ven ahí, seleccionando en Método “Solo direcciones automáticas (DHCP)”, y en Servidores DNS colocando 127.0.0.1

Activación

Tanto si usaste el Metodo 1 como el Método 2, el siguiente paso es reiniciar Network Manager:

sudo service network-manager restart

Veremos que la conexión se corta y vuelve a arrancar. Si todo ha salido bien, ya estará funcionando DNSCrypt Proxy. Para comprobarlo nos vamos a esta página, y si el resultado es positivo nos dará la bienvenida a OpenDNS:

OpenDNS Welcome

De lo contrario nos saldrá un mensaje de error diciendo “Oops”, o directamente no cargará ninguna página. Para resolverlo simplemente cambiamos el servidor 127.0.0.1 por 127.0.0.2 (o algún otro) y volvemos a reiniciar Network Manager.

Solo para Ubuntu 14.04

El mantenedor del PPA advierte que hay un bug en Ubuntu 14.04 que impide apagar el equipo cuando DNSCrypt Proxy está funcionando. Indica que está trabajando en un parche para resolverlo, pero mientras tanto se puede arreglar ejecutando estos comandos:

sudo apt-get install apparmor-utils
sudo aa-complain /etc/apparmor.d/usr.sbin.dnscrypt-proxy

Desinstalación

Si luego queremos dejar de usar DNSCrypt Proxy, antes que nada habrá que restaurar las opciones de conexión a como estaban al principio.

Si usaste el Método 1 sería quitarle la protección al archivo y después volver a habilitar los antiguos DNS con este comando:

sudo rm /etc/resolv.conf && sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Si usaste el Método 2, sería abrir otra vez el menú de configuración de red y en Método seleccionar “Automático (DHCP)”.

En cualquiera de los dos casos habrá que reiniciar después Network Manager con el comando antes mencionado, y finalmente desinstalar DNSCrypt Proxy de esta forma:

sudo apt-get autoremove --purge dnscrypt-proxy

No hay que olvidar también remover el PPA yendo al Centro de Software > Editar > Otro software.

↓↓↓¿Te sirvió este artículo?, Vota por nosotros en los OpenAwards↓↓↓

52 COMENTARIOS

    • A grandes rasgos es un método [casi] genérico que aplica para [casi] cualquier distribución (el método 2 para las que usen Network Manager), pero obviamente cambian los repositorios y algunas cosas como la forma de arrancar y reiniciar los servicios.

  1. Saludos
    1. el primer comentario esta invisible o algo porque la cuenta empieza en 2
    2. lo vi en perseos blog pero a pura compilacion, y de paso el articulo ya no esta

  2. Acabo de probarlo, pero sin ningún éxito.

    Hice lo que decía este tutorial, y luego me había quedado sin internet, por lo que volví a los DNS que tenía antes y todo bien.

    ¿Faltó algún paso, por casualidad? Porque no me explico cómo me pude haber quedado sin internet si seguí este tutorial al pie de la letra.

    Gracias.

    • Técnicamente, debería funcionar.

      Yo estoy usando Privoxy y su configuración para bloquear publicidad, y a la vez uso DNScrypt proxy, y no he tenido dramas. Quizás sea porque son 2 proxys para distintos propósitos, uno para DNS y otro para navegar en la web.

    • Al contrario, se vuelve más rápida porque pasas a usar los DNS de OpenDNS que tienen una velocidad de respuesta mucho más elevada que los de tu ISP. Aparte te beneficias de los otros atributos de OpenDNS como la protección contra phishing y demás. 😉

        • Sí, también los he utilizado, aunque me gustan más los de OpenDNS porque me da la sensación de que son más rápidos y generan menos errores; si bien solo son impresiones mías, no he hecho tests ni nada para verificarlo. 😛

      • Es cierto, lo he probado en mi otro equipo y “parece” que va más rápido.

        Una cosa que no entiendo:

        ¿Por qué hay que instalar dnscrypt-proxy? Quiero decir ¿No bastaría con cambiar las DNS que tengamos en nuestra configuración de red por la DNS de OpenDNS?

        Es lo que yo hago para usar las DNS de Google: Simplemente cambio ese dato en la configuración del equipo, no necesito instalar nada ni tener que ejecutar otro demonio más…

        Es la única pega que le veo.

        • En OpenDNS también se puede hacer así, pero esto que describo no es lo mismo. Cuando configuras los DNS de esa forma, las consultas se hacen por vía simple, sin ningún tipo de cifrado ni seguridad. Con esto les añades cifrado y autenticación. Es decir, con DNSCrypt Proxy estás usando los DNS de OpenDNS Y tecnología de cifrado, las dos cosas, no solo la primera.

      • Entiendo, gracias por tu respuesta.

        En internet recomiendan el uso de Unbound junto con dnscrypt pero no sé muy bien qué hace ese programa.

        ¿Qué me puedes decir?

        • Según tengo entendido es un servidor DNS que te instalas en local; teóricamente debería incrementar aún más tu velocidad porque genera un caché y DNSCrypt hace las solicitudes ahí en lugar de enviarlas a OpenDNS, pero fuera de eso no lo he investigado a fondo para ver exactamente en qué consiste el proceso.

  3. Me funcionó! :’) Muchas gracias hace tiempo venía buscando como usar un proxy o vpn (gratuitos) aún me falta el vpn que no pude encontrar uno que haya podido instalar en mi ubuntu.

    • No sé para qué buscabas un proxy pero si era para cambiar tu IP esto no te va a servir, ya que solo se encarga de cifrar las peticiones entre tu máquina y el proveedor de DNS. Tu IP sigue siendo la misma y de cara a los servidores todo sigue igual.

      • Si me di cuenta después que hice la prueba, es para cambiar la dirección de ip, con el cifrado ya es un avance en pos de la seguridad. Sabes de algún post en algún blog donde se explique mas o menos de manera simple como usar un vpn en Ubuntu? Según leí y pude comprobar hay un error que impide subir el archivo que contiene la configuración ya hecha por lo que las cosas se hacen un poco mas complicadas, yo no pude lograr usar uno. Cuando usaba windows tenía uno llamado hotspotshield y ese no tiene soporte para linux o al menos no se como usarlo aquí. Gracias por las respuestas a todo aquel que pueda y desee ayudarme.

    • Para usar una VPN en Ubuntu puedes usar OpenVPN en el Network Manager o en la terminal simplemente escribiendo “openvpn –config file ” , donde file es el archivo de configuración que tu proveedor te dará, además te pedirá user y pass para ingresar . Por ejemplo, esta el servicio gratuito de vpnbook. Por supuesto, tienes que primero instalar openvpn si no lo tienes instalado.
      Saludos.

      • Gracias Keiller. Desinstale DNSCrypt Proxy como dice el post, bajé openvpn, los archivos de configuración e ingresé por medio de la terminal con el comando config, pongo usuario y contraseña y me da este error : ERROR: Cannot ioctl TUNSETIFF tun1: Operation not permitted (errno=1) ; Exiting due to fatal error
        Sabes que puedo hacer el respecto?

    • Lee bien las instrucciones:

      De lo contrario nos saldrá un mensaje de error diciendo “Oops”, o directamente no cargará ninguna página. Para resolverlo simplemente cambiamos el servidor 127.0.0.1 por 127.0.0.2 (o algún otro) y volvemos a reiniciar Network Manager.

      Probablemente sea mejor que lo hagas por el Método 2.

  4. Buenas, muchachos segui el tuto al pie de la letra y ahora no tengo Internet como revierto el problema por que de la forma especificada no se quiere de sin tal are el dnsscript proxy. Ayuda por favor estoy sin internet.

      • Seguí el tutorial como debía. Use el método 1 con su respectiva desintalacion. Pero cuando se está removiendo se queda en el proceso. ¿ Alguna idea?

        • Veamos, repasemos los pasos de desinstalación…

          Quitarle la protección al archivo:

          sudo chattr -i /etc/resolv.conf

          Restaurar los antiguos DNS:

          sudo rm /etc/resolv.conf
          sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

          Reiniciar Network Manager:

          sudo service network-manager restart

          Desinstalar DNSCrypt Proxy:

          sudo apt-get autoremove --purge dnscrypt-proxy

          ¿En cuál comando es en el que se queda trabado?

    • Está sobrando un guión en el comando, purge debería ir solo con dos guiones al principio, así:

      sudo apt-get autoremove --purge dnscrypt-proxy

      Prueba si eso resuelve tu problema. De cualquier forma, si seguiste los pasos anteriores deberías tener conexión sin importar si ese último comando funciona o no.

  5. Hola amigos de desdelinux quisiera hacer una pregunta cuando trato de hacer el poseso de instalación después de agregar los repositorios y actualizar coloco sudo apt-get install dnscrypt-proxy pero me dice:
    E: No se ha podido localizar el paquete dnscrypt-proxy tengo ubuntu 14.04 no se por que pasa esto ayuda

  6. Lo pude hacer fácilmente en Arch/Antergos pero en Debian/Jessie desde el primer paso falla, no se si sera que no es compatible con Debian:

    keos@kaos:~$ su
    Contraseña:
    root@kaos:/home/keos# add-apt-repository ppa:shnatsel/dnscrypt
    bash: add-apt-repository: no se encontró la orden
    root@kaos:/home/keos#

  7. Hola! Muy bueno el sitio y quería preguntarles:
    sigo todas las instrucciones pero no logro que use el DNS que cambiamos en resolv.conf (127.0.0.1 o 127.0.0.2). Por lo que me quedo sin acceso a Internet. Uso DEBIAN y WICD en lugar de Network Manager.
    Con “find / -name dnscrypt-proxy” veo que el programa está instalado donde se supone que debe estar (/usr/local/sbin y /usr/local/share/).
    Con “ps aux | grep dnscrypt-proxy” me tira la siguiente salida:
    root 6346 0.0 0.0 2808 672 ? SLs 09:45 0:00 dnscrypt-proxy –local-address=127.0.0.1 –daemonize –resolver-address=176.10.127.43:443 –provider-name=2.dnscrypt-cert.ns3.ca.dns.opennic.glue –provider-key=1C19:7933:1BE8:23CC:CF08:9A79:0693:7E5C:3410:2A56:AC7F:6270:E046:25B2:EDDB:04E3

    No entiendo en qué estoy fallando. He leído el –help pero no le encuentro la vuelta. Desde ya, muchas gracias.

Dejar una respuesta