Pular para conteúdo

doh: Módulo NGINX para atender a requisições DNS-over-HTTPS (DOH)

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

  • RedHat Enterprise Linux 7, 8, 9 e 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 e 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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_doh_module.so;

Este documento descreve o nginx-module-doh v0.1 lançado em 15 de janeiro de 2020.


Módulo simples do Nginx para atender a requisições DNS-over-HTTPS (DOH).

CAVEAT EMPTOR: Este módulo é experimental, embora eu tenha usado com sucesso tanto no Firefox quanto no Curl, pode haver bugs não descobertos. A transferência de zona atualmente não é oficialmente suportada.

Testado com versões do Nginx: 1.16.1 (estável) 1.17.6 1.17.7 (mainline).

Instruções para compilar, instalar e usar módulos do Nginx podem ser encontradas nos links abaixo.

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

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

Incluí um arquivo de configuração para compilar como um módulo dinâmico e estático.

Este módulo só pode ser usado em um bloco de localização http.

DIRETIVAS DO MÓDULO

doh: (não aceita argumentos) ativa DOH neste bloco de localização, o endereço do servidor DNS upstream padrão é 127.0.0.1, a porta padrão é 53 e o tempo limite padrão é 5 segundos.

doh_address: (aceita 1 argumento) define o endereço do servidor DNS upstream, pode ser IPv4 ou IPv6.

doh_port: (aceita 1 argumento) define a porta para contatar o servidor DNS upstream (aplica-se a conexões TCP e UDP).

doh_timeout: (aceita 1 argumento) define o tempo limite em segundos.

EXEMPLOS

caso de uso mais simples com servidor DNS upstream ouvindo em 127.0.0.1 na porta 53:

location /dns-query { 
    doh;
}

defina um endereço upstream de 127.0.2.1, uma porta de 5353 e um tempo limite de 2 segundos:

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

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-doh.