DNSCrypt (Español)

From ArchWiki
Jump to: navigation, search

DNSCrypt encrypta y autentifica el tráfico DNS entre el usuario y la resolución DNS, previene la suplantación local de las consultas DNS, asegurando que las respuestas DNS son enviadas por el servidor de eleccion. [1]

Instalación

Instale el paquete dnscrypt-proxy disponible en los repositorios oficiales.

Configuración

Cuando dnscrypt-proxy.socket esta activado. Acepta las peticiones entrantes en 127.0.0.1:53 a una resolucion DNS. La resolucion DNS por defecto para dnscrypt-proxy.service es dnscrypt.eu-nl. Los nombres del resolver compatibles son visibles en la primera columna de /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv.

Para cambiar el valor por defecto editar dnscrypt-proxy.service. Se recomienda elegis un proveedor creca de su ubicacion.

Modificar el archivo Resolv.conf (Español) y reemplazar el conjunto actual de direcciones del resolver con localhost:

nameserver 127.0.0.1

Otros programas pueden sobreescribir este ajuste; consulte Resolv.conf (Español)#Conservar las configuraciones de DNS para mas detalles.

Iniciar dnscrypt

Está disponible como un servicio de systemd: dnscrypt-proxy.service

Consejos y trucos

DNSCrypt como un reenviador para un caché DNS local

Se recomienda ejecutar DNSCrypt como un reenviador para un caché DNS local, de lo contrario cada consulta única hará una ida y vuelta a la resolucion del upstream. Cualquier programa de almacenamiento de cache DNS local deberia trabajar. Los siguientes ejemplos muestran la configuracion para Unbound y dnsmasq.

Ejemplo: configuración para Unbound

Configure Unbound a su gusto (recuerde ajustar /etc/resolv.conf para utilizar el servidor DNS local[broken link: invalid section]) y añada las siguientes líneas al final de la secciónserver en /etc/unbound/unbound.conf:

do-not-query-localhost: no
forward-zone:
  name: "."
  forward-addr: 127.0.0.1@40
Nota: El puerto 40 es dado como un ejemplo de cómo Unbound escucha por defecto el puerto 53, estos deben ser diferentes.

Inicie el servicio unbound.service de systemd. Después configure DNScrypt para que coincidan la IP y el PORT presentes en forward-zone de Unbound en /etc/conf.d/dnscrypt-proxy:

DNSCRYPT_LOCALIP=127.0.0.1
DNSCRYPT_LOCALPORT=40
Nota: DNSCrypt debe ser iniciado antes que Unbound, así que incluya unbound.service en una línea Before= en la sección [Unit] de dnscrypt-proxy.service.

Reinicie dnscrypt-proxy.service y unbound.service para aplicar los cambios.

Ejemplo: configuración para dnsmasq

Configure dnsmasq como una caché DNS local. He aquí la configuración básica para trabajar con DNSCrypt:

/etc/dnsmasq.conf
no-resolv
server=127.0.0.2#2053
listen-address=127.0.0.1

Si ha configurado DNSCrypt para usar un «resolver» con la validación DNSSEC activada, asegúrese de activarla también en dnsmasq:

/etc/dnsmasq.conf
proxy-dnssec

Configure DNSCrypt para escuchar en 127.0.0.2, donde dnsmasq realizará la consulta:

/etc/conf.d/dnscrypt-proxy
DNSCRYPT_LOCALIP=127.0.0.2
DNSCRYPT_LOCALPORT=2053

Reinicie dnscrypt-proxy.service y dnsmasq.service para aplicar los cambios.

Activar EDNS0

Los mecanismos de extensión de DNS permiten, entre otras cosas, que a un cliente especifique cuán grande puede ser una respuesta a través de UDP.

Agregue la siguiente línea a /etc/resolv.conf:

options edns0

También es posible que desee agregar el siguiente argumento a dnscrypt-proxy:

--edns-payload-size=<bytes>

El tamaño por defecto es 1252 bytes, con valores de hasta 4096 siguen siendo, supuestamente, seguros. Un valor por debajo o igual a 512 bytes desactivará este mecanismo, a menos que un cliente envíe un paquete con una sección OPT, proporcionando un tamaño de carga útil.

Test de EDNS0

Haga uso del DNS Reply Size Test Server, utilizando la herramienta de línea de órdenes dig, que forma parte del paquete bind-tools disponible en los repositorios oficiales, para emitir una consulta TXT para el nombre rs.dns-oarc.net:

$ dig +short rs.dns-oarc.net txt

Con EDNS0 funcionando, la salida debe ser similar a esta:

rst.x3827.rs.dns-oarc.net.
rst.x4049.x3827.rs.dns-oarc.net.
rst.x4055.x4049.x3827.rs.dns-oarc.net.
"2a00:d880:3:1::a6c1:2e89 DNS reply size limit is at least 4055 bytes"
"2a00:d880:3:1::a6c1:2e89 sent EDNS buffer size 4096"