Montar un servidor DNSCrypt con DoH usando Docker en la Raspberry Pi

En esta entrada del blog montaremos nuestro propio servidor DNS privado y anónimo con Docker, el derecho a la privacidad es importante, usando el sistema DNSCrypt podremos tener en la Pi, o en cualquier ordenador, un servidor DNS cifrado que resolverá todos los dominios que usemos sin que la información pueda leerla el proveedor de servicios o cualquier intermediario, ya que la conexión hacia el exterior va cifrada.

Usaremos Docker para facilitar el trabajo y no tener que desplegar un servicio nativo en la máquina, además nos genera la configuración por defecto de DNSCrypt la primera vez que arranca. También montaremos un servicio DoH (DNS over HTTPS) que nos permitirá resolver dominios sin necesidad de usar el protocolo DNS, simplemente usando una consulta HTTPS, esto puede configurarse en los ajustes de red del navegador.

Copiamos el siguiente contenido en el archivo docker-compose.yml dentro de la carpeta que almacenará la información del contenedor DNSCrypt:

version: '2'

services:
  dnscrypt-proxy:
    image: klutchell/dnscrypt-proxy:main
    container_name: dnscrypt-proxy
    hostname: dnscrypt-proxy
    restart: always
    volumes:
      - ./config:/config
      - ./ssl/privkey.pem:/ssl/privkey.pem:ro # Certificados SSL necesarios para utilizar el servicio seguro DoH
      - ./ssl/fullchain.pem:/ssl/fullchain.pem:ro
    ports:
      - 53:5353
      - 53:5353/udp
      - 443:3000
    networks:
      dnscryptnet:
        
networks:
  dnscryptnet:

Arrancamos el Docker-Compose la primera vez y generará el archivo config/dnscrypt-proxy.toml en el que podremos configurar las opciones de DNSCrypt, puertos de escucha, ruta de los certificados, etc.

Una vez configurado levantamos Docker-Compose con el comando:

$ docker-compose up -d

Y lo dejamos funcionando. Si todo ha ido bien podremos acceder al servicio DNS en la dirección de la Pi puerto 53 y al servicio DoH en el puerto https 443 con la ruta /dns-query

https://direcciondelapi/dns-query

Esto ha sido todo, os animo a que montéis vuestro propio servidor y tengáis algo más de privacidad, saludos 👋