DNS cifrado
AdGuard Home admite todos los protocolos de cifrado DNS modernos listos para usar:
AdGuard Home admite DNSCrypt tanto del lado del cliente, como del lado del servidor. Aprende a configurar AdGuard Home como un servidor DNSCrypt.
Esta guía explica cómo configurar un servidor DNS cifrado con AdGuard Home.
Instalación del servidor
El propósito de proteger el tráfico DNS es protegerlo de terceros que podrían analizarlo o modificarlo, por ejemplo, del ISP.
Significa que necesitarás un servidor con una dirección IP pública dedicada. Hay muchos proveedores de servidores en la nube baratos: DigitalOcean, Vultr, Linode, etc. Solo elige uno, crea un servidor en la nube allí e instala AdGuard Inicio en tu servidor.
Registrar un nombre de dominio
En primer lugar, necesita un nombre de dominio. Si nunca has registrado uno, aquí tienes una [instrucción simple][nombre-dominio-registro] que te ayudará con eso.
Obtén un certificado SSL
Tanto DNS-over-HTTPS como DNS-over-TLS se basan en encriptación TLS, por lo que necesitarás un certificado SSL para utilizarlos.
Se puede comprar un certificado SSL a una autoridad de certificación (CA), una empresa en la que confían los navegadores y sistemas operativos para inscribir certificados SSL para dominios.
Alternativamente, puedes obtener el certificado de forma gratuita de Let's Encrypt CA, una autoridad de certificación gratuita desarrollada por Internet Security Research Group (ISRG).
Esta guía explica cómo obtener un certificado de ellos.
Usando o CertBot
Certbot es un cliente fácil de usar que obtiene un certificado de Let's Encrypt.
- Ve a certbot.eff.org y elige Ninguno de los anteriores software y tu sistema operativo.
- Sigue las instrucciones de instalación y detente antes de llegar a la sección Empezar.
Obtener un certificado usando DNS challenge
Tienes un nombre de dominio y usar el desafío DNS es la forma más fácil de obtener un certificado.
Ejecuta este comando y sigue las instrucciones del certbot:
sudo certbot certonly --manual --preferred-challenges=dns --preferred-chain="ISRG Root X1"
Al final, obtendrás dos archivos:
fullchain.pem: tu certificado SSL codificado en PEMprivkey.pem: tu clave privada codificada en PEM
Ambos serán necesarios para configurar AdGuard Home.
Necesitarás utilizar el mismo procedimiento para renovar el certificado existente.
Usando Lego
También existe una alternativa muy agradable y fácil de usar a CertBot llamada LEGO.
- Instálalo utilizando un método apropiado.
- Elige tu proveedor DNS de [la lista][proveedor de lego] y sigue las instrucciones para obtener un certificado.
Además, aquí hay un script simple que puedes usar para automatizar la generación y renovación de certificados.
Configurar AdGuard Home
Abre la interfaz web de AdGuard Home y ve a Configuración.
Selecciona la sección Cifrado.

Copia y pega el contenido del archivo 'fullchain.pem' para introducir el campo bajo Certificates o especificar la ruta hacia el archivo.
Copia y pega el contenido del archivo 'privkey.pem' para introducir el campo bajo Clave privada o especifica la ruta hacia el archivo.
Introduce tu nombre de dominio como Nombre del servidor.
Obtén los mensajes de validación exitosa y haz clic en Guardar configuración.
AdGuard Home recargará automáticamente los certificados y/o claves privadas especificados por la ruta del archivo cuando cambien. Una recarga también puede ser activada por una señal 'SIGHUP'.
Uso con proxy inverso
Ya tenemos una [guía][preguntas frecuentes sobre proxy inverso] sobre cómo configurar un servidor proxy inverso para acceder a la interfaz web de AdGuard Home.
AdGuard Home es capaz de restringir las peticiones de DNS mediante HTTPS que proceden del servidor proxy no incluido en la lista "de confianza". De forma predeterminada, está configurado para aceptar Peticiones de direcciones en bucle IPv4 e IPv6.
Para habilitar AdGuard Home para gestionar peticiones de DNS mediante HTTPS desde un servidor proxy inverso, establezca la configuración trusted_proxies en AdGuardHome.yaml con la Dirección IP del servidor proxy. Si tienes varios servidores proxy, puedes usar un CIDR en lugar de una simple dirección IP.
Proxy inverso Nginx
Para configurar AdGuard Home para aceptar Peticiones desde el servidor proxy inverso Nginx, asegúrate de que el propio servidor proxy inverso esté configurado correctamente.
El archivo nginx.conf debe contener las directivas adecuadas para agregar los headers de reenvo compatibles a la Peticin, que son X-Real-IP o X-Forwarded-For. Esto se puede lograr con ngx_http_realip_module. En resumen, el módulo toma la Dirección IP real del cliente y la escribe en el header de la Petición HTTP. AdGuard Home recibirá e interpretará el valor de este encabezado como la dirección real del cliente. La dirección del servidor proxy inverso también se recibirá y también se comprobará en comparación con la lista de proxies "trusted".
Otro header que quizá quieras usar como proxy es el header Host, que es requerido para que AdGuard Home reconozca peticiones de clientes que tengan un ClientID en sus nombres de host.
Por ejemplo, si la configuración del servidor proxy inverso contiene las siguientes directivas:
location /dns-query {
# …
proxy_set_header Host $host;
proxy_set_header X-Real-IP '1.2.3.4';
proxy_bind 192.168.1.2;
# …
}
AdGuard Home obtendrá 192.168.1.2 como la dirección de su servidor proxy y la comparará con trusted_proxies. El 1.2.3.4 será controlado por la configuración de acceso en caso de que el proxy sea "confiable".
Cloudflare CDN
La red de distribución de contenido de Cloudflare actúa como un proxy inverso que agrega sus propios encabezados a las solicitudes reenviadas, que son CF-Connecting-IP y True-Client-IP. Estos también son compatibles con AdGuard Home, por lo que las direcciones de los servidores proxy inversos se pueden insertar directamente en la lista trusted_proxies. Consulta la referencia oficial de Cloudflare sobre la restauracin de la IP original del visitante.
Otros encabezados
Otros encabezados HTTP pueden ser compatibles con AdGuard Inicio en el futuro. Sin embargo, cualquier solicitud de funciones relacionada con los encabezados debe intentar resolverse primero configurando el proxy inverso.
Por ejemplo, para modificar el mecanismo de HTTP Strict Transport Security para incluir la directiva experimental preload, se podría usar algo como el siguiente fragmento de configuración:
location /dns-query {
# …
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# …
}
Configurando dispositivos
Android
- Android 9 y superior admiten «DNS-over-TLS» de forma nativa. Para configurarlo, ve a Configuración → Red e Internet → Avanzado → DNS privado e ingresa el nombre del dominio allí.
- AdGuard para Android admite
DNS-over-HTTPS,DNS-over-TLS,DNSCryptyDNS-over-QUIC. - Intra añade soporte a Android para
DNS-over-HTTPS.
iOS
- iOS 14 y superiores son compatibles de forma nativa con
DNS-over-TLSyDNS-over-HTTPSmediante perfiles de configuración. Con el fin de facilitar las cosas, AdGuard Home puede generar estos perfiles de configuración para ti. Simplemente dirígete a Guía de configuración → Privacidad de DNS y desplázate hasta iOS. - AdGuard para iOS admite
DNS-over-HTTPS,DNS-over-TLS,DNSCryptyDNS-over-QUIC. - DNSCloak soporta
DNS-over-HTTPSpero con el fin de configurarlo para que use tu propio servidor, necesitarás generar un DNS Stamp para ello.
Windows
- Windows 10 Build 19628 y superiores admiten «DNS-over-HTTPS» de forma nativa.
- AdGuard para Windows admite
DNS-over-HTTPS,DNS-over-TLS,DNSCryptyDNS-over-QUIC.
macOS
- macOS Big Sur y superiores son compatibles de forma nativa con
DNS-over-TLSyDNS-over-HTTPSmediante perfiles de configuración. Con el fin de facilitar las cosas, AdGuard Home puede generar estos perfiles de configuración para ti. Simplemente dirígete a Guía de configuración → Privacidad de DNS y desplázate hasta iOS.
Otras implementaciones
- AdGuard Home en sí mismo puede ser un cliente DNS seguro en cualquier plataforma.
- dnsproxy soporta todos los protocolos DNS seguros conocidos.
- dnscrypt-proxy soporta
DNS-over-HTTPS. - Mozilla Firefox soporta
DNS-over-HTTPS.
Configuración de DNSCrypt
AdGuard Home es capaz de funcionar como un servidor DNSCrypt. Sin embargo, esta característica solo está disponible mediante el archivo de configuración y no se puede configurar usando la interfaz de usuario web. Esta guía explica cómo hacerlo.
Generando un archivo de configuración
A continuación se explica cómo generar un archivo de configuración DNSCrypt y apuntar AdGuard Home hacia él:
Asegúrate de que tu configuración de TLS sea válida y el cifrado esté habilitado.
Descarga la última versión de la utilidad ['dnscrypt'] para tu sistema. Extrae el archivo y navega hasta el directorio resultante.
En Unix, usando un shell compatible con POSIX:
(Aquí y más abajo se utiliza
linux-amd64como ejemplo. Asegúrate de descargar y utilizar el correspondiente a tu plataforma)Extrae los archivos:
tar -f ./dnscrypt-linux-amd64-v2.2.3.tar.gz -v -x -zEjemplo de salida:
linux-amd64/
linux-amd64/README.md
linux-amd64/LICENSE
linux-amd64/dnscryptNavegue hasta el directorio extraído:
cd ./linux-amd64/Genera el archivo de configuración:
./dnscrypt generate --provider-name '2.dnscrypt-cert.example.org' --out ./dnscrypt.yamlEjemplo de salida:
```none
2022/01/02 12:34:56 [info] Generando configuración para 2.dnscrypt-cert.example.org
2022/02/02 12:34:56 [info] La configuración se ha escrito en ./dnscrypt.yaml
2022/02/02 12:34:56 [info] Vaya a https://dnscrypt.info/stamps para generar un sello SDNS
2022/02/02 12:34:56 [info] Puede ejecutar un servidor DNSCrypt usando el siguiente comando:
2022/02/02 12:34:56 [info] dnscrypt server -c ./dnscrypt.yaml -f 8.8.8.8
```
En Windows, usando PowerShell:
(Aquí y más abajo se utiliza
windows-amd64como ejemplo. Asegúrate de descargar y utilizar el correspondiente a la arquitectura de tu CPU.)Extrae los archivos:
Expand-Archive -Path .\dnscrypt-windows-amd64-v2.2.3.zipNavega hasta el directorio extraído:
Set-Location -Path .\dnscrypt-windows-amd64-v2.2.3\windows-amd64\Genera el archivo de configuración:
.\dnscrypt.exe generate --provider-name '2.dnscrypt-cert.example.org' --out .\dnscrypt.yamlEjemplo de salida:
2022/01/02 12:34:56 [info] Generando configuración para 2.dnscrypt-cert.example.org
2022/02/02 12:34:56 [info] La configuración se ha escrito en .\dnscrypt.yaml
2022/02/02 12:34:56 [info] Ve a https://dnscrypt.info/stamps para generar un sello SDNS
2022/02/02 12:34:56 [info] Puedes ejecutar un servidor DNSCrypt usando el siguiente comando:
2022/02/02 12:34:56 [info] dnscrypt server -c .\dnscrypt.yaml -f 8.8.8.8
Donde
example.orges el nombre de tu host y./dnscrypt.yamles el nombre del archivo de salida de configuración.Puedes añadir el camino al binario en tu
PATH/$env:PATH.En el archivo de configuración (normalmente
AdGuardHome.yaml), agrega las siguientes líneas:'tls':
# N.B. The encryption must be enabled.
'enabled': true
# …
'port_dnscrypt': 5443
'dnscrypt_config_file': './dnscrypt.yaml'Donde
5443es el puerto para tu servidor DNSCrypt y./dnscrypt.yamles el nombre del archivo de configuración generado en el paso 2.ImportanteDetén AdGuard Home antes de cambiar el archivo de configuración.
tipEn Windows, se recomienda usar la ruta completa al archivo de configuración. Por ejemplo,
C:\Usuarios\Me\Files\dnscrypt.yaml.
Generando un sello DNSCrypt
A continuación se explica cómo generar un sello DNSCrypt y verificar su instalación:
Introduce los datos de tu archivo de configuración DNSCrypt. La clave pública del proveedor es el valor del campo
public_keyen su archivo de configuración DNSCrypt.noteIntroduce el host con tu puerto personalizado.
Ahora tienes un sello que se ve algo así:
sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3JnRevisa tu instalación ejecutando:
./dnscrypt lookup-stamp \
--domain 'example.com' \
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' \
--type 'a'O bien, en Windows:
.\dnscrypt.exe lookup-stamp `
--domain 'example.com' `
--stamp 'sdns://AQcAAAAAAAAADTEyNy4wLjAuMTo0NDMg8R3bzEgX5UOEX93Uy4gYSbZCJvPeOXYlZp2HuRm8T7AbMi5kbnNjcnlwdC1jZXJ0LmV4YW1wbGUub3Jn' `
--type 'a'Donde
example.comes el nombre de dominio a consultar.
Configuración de dispositivos para usar DNSCrypt
Todas las plataformas
dnscrypt-proxy(implementación de referencia). DNSCrypt-Proxy es un proxy de línea de comandos para Linux, BSD, Windows, macOS, Android y más.
Android
- AdGuard para Android es compatible con DNSCrypt.
iOS
- AdGuard para iOS es compatible con DNSCrypt.
- DNSCloak usa
dnscrypt-proxyinternamente y admite DNSCrypt.
Windows
- AdGuard para Windows admite DNSCrypt.
- Simple DNSCrypt es una herramienta de gestión sencilla para configurar y ejecutar
dnscrypt-proxyen Windows.
Consulta el sitio de DNSCrypt y DNS privacy project’s list para más información.