DNSCrypt (Español) - ArchWiki

# 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).

## Instalación

Instale dnscrypt-proxy disponible en los repositorios oficiales.

## Configuración

Sugerencia: Para configurar automáticamente DNSCrypt y elegir un «resolver», utilice dnscrypt-autoinstallAUR disponible en AUR.

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ón`server` 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 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"

Categories:

- Domain Name System (Español)
- Encryption (Español)