Saltar a contenido

doh: módulo NGINX para servir solicitudes DNS-over-HTTPS (DOH)

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-doh
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-doh

Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:

load_module modules/ngx_http_doh_module.so;

Este documento describe nginx-module-doh v0.1 lanzado el 15 de enero de 2020.


Módulo simple de Nginx para servir solicitudes DNS-over-HTTPS (DOH).

CAVEAT EMPTOR: Este módulo es experimental, aunque lo he estado usando con éxito tanto con Firefox como con Curl, puede haber errores no descubiertos. La transferencia de zona actualmente no está oficialmente soportada.

Probado con versiones de Nginx: 1.16.1 (estable) 1.17.6 1.17.7 (mainline).

Las instrucciones para construir, instalar y usar módulos de Nginx se pueden encontrar en los enlaces a continuación.

dinámico: https://www.nginx.com/resources/wiki/extending/converting/#compiling-dynamic

estático: https://www.nginx.com/resources/wiki/extending/compiling/

He incluido un archivo de configuración tanto para construir como un módulo dinámico y estático.

Este módulo solo se permite usar en un bloque de ubicación http.

DIRECTIVAS DEL MÓDULO

doh: (no toma argumentos) habilita DOH en este bloque de ubicación, la dirección del servidor DNS ascendente por defecto es 127.0.0.1, el puerto por defecto es 53, y el tiempo de espera por defecto es de 5 segundos.

doh_address: (toma 1 argumento) establece la dirección del servidor DNS ascendente, puede ser IPv4 o IPv6.

doh_port: (toma 1 argumento) establece el puerto para contactar al servidor DNS ascendente (aplica tanto a conexiones TCP como UDP).

doh_timeout: (toma 1 argumento) establece el tiempo de espera en segundos.

EJEMPLOS

caso de uso más simple con el servidor DNS ascendente escuchando en 127.0.0.1 en el puerto 53:

location /dns-query { 
    doh;
}

establecer una dirección ascendente de 127.0.2.1, un puerto de 5353, y un tiempo de espera de 2 segundos:

location /dns-query { 
    doh;
    doh_address 127.0.2.1;
    doh_port 5353;
    doh_timeout 2;
}

GitHub

Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-doh.