DNSCrypt (Español)
DNSCrypt es una pieza de software que encripta el tráfico DNS entre el usuario y una resolución de DNS (en adelante «resolver»), que previene el espionaje, la suplantación o los ataques man-in-the-middle (de los intermediarios).
Contents
Instalación
Instale dnscrypt-proxy disponible en los repositorios oficiales.
Configuración
Por defecto , dnscrypt-proxy está preconfigurado en /etc/conf.d/dnscrypt-proxy
(leído por dnscrypt-proxy.service
) para que acepte las peticiones de entrada en 127.0.0.1
de un «resolver» de OpenDNS. Véase la lista de «resolvers» públicos para otras alternativas.
Con esta configuración, será necesario modificar el archivo resolv.conf y reemplazar su actual conjunto de direcciones por la dirección localhost:
nameserver 127.0.0.1
Puede que sea necesario evitar que otros programas lo sobrescriban. Vea resolv.conf (Español)#Conservar las configuraciones de DNS para obtener más detalles.
Iniciar dnscrypt
Está disponible como un servicio de systemd: dnscrypt-proxy.service
Consejos y trucos
DNSCrypt actuando como un expedidor para los DNS almacenados en caché local
Se recomienda ejecutar DNSCrypt para que actúe como un mecanismo de intermediación para los DNS almacenados en caché local, de lo contrario cada consulta única hará una ida y vuelta al «resolver» del servidor upstream. Cualquier programa de caching DNS local puede funcionar. Los ejemplos siguientes muestran la configuración 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) 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
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
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 dnsutils[broken link: replaced by 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"