Como configurar o Pi-hole DNS-over-HTTPS no Ubuntu Server 24.04

Para o Pi-hole no Ubuntu Server 24.04, direcione as solicitações upstream através do proxy dnscrypt-proxylocal e aponte o Pi-hole para o servidor local em 127.0.0.1#5053`/var/www/pi-hole`. Isso criptografa o tráfego DNS entre o seu servidor e o resolvedor upstream selecionado com DNS sobre HTTPS (DoH), enquanto o Pi-hole continua a responder aos seus clientes na rede local e a aplicar suas listas de bloqueio. O próprio Pi-hole não fornece transporte DoH para o seu servidor upstream por padrão; o proxy local fornece essa conexão criptografada.

Primeiramente, é importante saber um detalhe sobre a versão atual: a Cloudflare removeu o cloudflared proxy-dnscomando das novas versões a partir de 2 de fevereiro de 2026. Tutoriais antigos que instalam esse comando podem não funcionar com a cloudflaredversão atual. Os passos abaixo utilizam o dnscrypt-proxycomando `pi-hole do DoH`, seguindo o guia atual do Pi-hole. Essa configuração é adequada quando o Pi-hole e o proxy são executados no mesmo host Ubuntu. Uma configuração com Docker ou vários hosts requer endereçamento de listener e regras de firewall diferentes.

O que esta configuração faz e o que ela não faz.

O DNS normal geralmente envia consultas do seu resolvedor para um provedor DNS upstream sem criptografia de transporte. O DoH transporta solicitações de DNS dentro de HTTPS, dificultando que um observador de rede entre o seu servidor Pi-hole e o resolvedor leia ou altere essas solicitações. O Pi-hole continua sendo o servidor DNS anunciado para os dispositivos na sua rede local; apenas o caminho upstream dele muda.

O DoH não torna a atividade de DNS invisível para o resolvedor que você escolher. O provedor upstream ainda recebe consultas do seu servidor, e o Pi-hole pode reter o histórico de consultas do cliente de acordo com suas configurações de privacidade e registro. O HTTPS também não criptografa o tráfego da web não relacionado. Se o seu objetivo é usar um resolvedor específico, verifique a política de privacidade dele e escolha a entrada DoH correspondente na lista de resolvedores compatíveis.

Antes de começar

  • Confirme se o Pi-hole já está instalado e funcionando no Ubuntu Server 24.04. Este passo a passo configura um Pi-hole existente, em vez de instalá-lo.
  • Certifique-se de que o servidor tenha um endereço LAN estável. Se o endereço mudar, os clientes DHCP do roteador podem perder a conexão com o servidor DNS.
  • Tenha acesso de administrador e uma forma de acessar o host do Pi-hole caso o DNS pare de funcionar temporariamente. Evite fazer essa alteração remotamente por meio de uma conexão que dependa do mesmo Pi-hole para resolução de nomes.
  • Anote as configurações atuais do Pi-hole para que você possa restaurá-las durante o processo de reversão.

O proxy se vinculará apenas ao loopback na porta 5053, deixando a porta 53 para o Pi-hole. Isso evita conflitos com o serviço DNS do Pi-hole e o resolvedor local do Ubuntu. Não desative systemd-resolveda porta de loopback separada do proxy apenas para que esse design funcione; ela evita esse conflito.

1. Instale o dnscrypt-proxy a partir dos repositórios de pacotes do Ubuntu.

O projeto dnscrypt-proxy documenta um procedimento de instalação de pacotes no Ubuntu. Verifique se os repositórios do Ubuntu configurados oferecem uma opção antes de instalar:

sudo apt update
apt-cache policy dnscrypt-proxy

Se a saída mostrar uma versão candidata, instale-a:

sudo apt install dnscrypt-proxy

Se nenhum candidato for exibido, não adicione um repositório de terceiros não relacionado apenas para prosseguir. Use o método de instalação indicado no guia oficial do projeto dnscrypt-proxy para Linux, verifique a versão e a arquitetura e adapte a configuração do serviço a essa instalação. Os caminhos de configuração e da unidade de socket do systemd abaixo se aplicam à configuração do pacote Ubuntu documentada pelo Pi-hole.

2. Mova o listener do proxy para a porta 5053 do localhost.

O Pi-hole já utiliza a porta DNS padrão 53. Configure o socket do proxy para escutar em TCP e UDP em 127.0.0.1:5053, acessível apenas a partir do mesmo host. Crie um módulo drop-in do systemd:

sudo systemctl edit dnscrypt-proxy.socket

Insira essas linhas no editor e salve:

[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053

As linhas vazias ListenStream=limpam ListenDatagram=as configurações padrão do pacote antes de definir os endereços de substituição. Não as omita: caso contrário, o systemd pode manter a porta padrão além do listener personalizado.

3. Selecione um resolvedor DoH

Abra o arquivo de configuração do pacote:

sudoedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Para ativar o socket do systemd, use uma lista de listeners vazia na configuração do proxy. Escolha um nome de resolvedor na lista de resolvedores públicos assinados. Por exemplo, o seguinte seleciona o resolvedor padrão do Cloudflare; o guia do Pi-hole também mostra cloudflare-securityum exemplo de quando se deseja filtrar malware no resolvedor upstream:

listen_addresses = []
server_names = ['cloudflare']

Mantenha o restante da configuração do pacote intacta. Os nomes server_namessão identificadores de registro, não nomes de host ou caminhos de URL arbitrários. Se preferir outro provedor, verifique se a entrada do resolvedor atual oferece suporte a DoH e copie o nome exato. Um resolvedor que filtra malware ou outras categorias pode produzir resultados diferentes de um resolvedor sem filtros.

4. Configure o Pi-hole para usar o proxy local.

Configure o endereço DNS upstream do Pi-hole para o servidor local:

sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'

O #5053sufixo é a notação do Pi-hole para a porta DNS não padrão. Você também pode verificar a interface de administração do Pi-hole em Configurações > DNS . Desmarque as opções predefinidas de servidores públicos upstream e deixe o servidor personalizado 127.0.0.1#5053como upstream. Manter um resolvedor público selecionado como upstream adicional pode permitir que as consultas ignorem o proxy criptografado; portanto, remova essas entradas se você precisar que todas as consultas upstream do Pi-hole usem DoH.

5. Reinicie os serviços e verifique se o problema foi resolvido.

Reinicie o socket, o serviço proxy e o daemon FTL do Pi-hole para que carreguem a nova configuração:

sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
sudo systemctl restart pihole-FTL.service

Verificar o estado do serviço:

sudo systemctl status dnscrypt-proxy.socket
sudo systemctl status dnscrypt-proxy.service
sudo systemctl status pihole-FTL.service

Cada um deve estar ativo, sem erros de vinculação ou falhas na inicialização do resolvedor. Teste o proxy diretamente em seu servidor DNS local:

dig @127.0.0.1 -p 5053 example.com

Uma resposta DNS indica que o proxy local está respondendo. Em seguida, teste o Pi-hole na porta 53:

dig @127.0.0.1 example.com

Verifique o registro de consultas ou o painel de controle do Pi-hole para confirmar se a solicitação chegou ao Pi-hole e revise o registro do proxy caso o teste falhe:

sudo journalctl -u dnscrypt-proxy.service -b --no-pager

Para uma verificação adicional, procure nos logs de inicialização do proxy ou no registro de eventos o resolvedor selecionado e o status do protocolo DoH. Uma resposta bem-sucedida digpor si só comprova que a resolução de DNS está funcionando; não comprova, por si só, que a requisição utilizou HTTPS.

Problemas comuns e recuperação segura

  • “Endereço já em uso”: outro processo pode já estar ocupando a porta 5053, ou a substituição de socket não foi carregada. Verifique os listeners com sudo ss -lntup, revise o drop-in com systemctl cat dnscrypt-proxy.socket, e confirme se as linhas de reset vazias precedem as entradas da porta 5053.
  • O proxy está ativo, mas as consultas expiram: verifique o acesso HTTPS de saída, o nome do resolvedor e os logs do proxy. Algumas redes bloqueiam conexões DNS sobre HTTPS ou restringem a porta TCP 443.
  • O teste de proxy funciona, mas o Pi-hole não recebe resposta do servidor upstream: confirme se o Pi-hole está configurado corretamente 127.0.0.1#5053e reinicie-o pihole-FTL. Certifique-se de que as caixas de seleção padrão de upstream não estejam fornecendo silenciosamente uma rota alternativa.
  • O próprio Ubuntu não consegue resolver nomes após a alteração: esta configuração modifica o arquivo upstream do Pi-hole, não o do host /etc/resolv.conf. Evite substituir esse arquivo ou desativá-lo systemd-resolvedcomo uma solução rápida para problemas.

Para reverter, restaure a configuração de DNS upstream que você registrou no Pi-hole e reinicie pihole-FTL. Assim que o Pi-hole não apontar mais para o proxy, você poderá desativá-lo ou removê-lo dnscrypt-proxyusando o gerenciador de pacotes. Se este servidor também resolver seu próprio DNS através do Pi-hole, mantenha um caminho de recuperação local disponível antes de alterar os serviços.

Qual opção é mais adequada para a sua rede?

Use essa configuração de proxy de host único quando desejar filtragem DNS centralizada no Pi-hole e tráfego criptografado do Pi-hole para um resolvedor selecionado. É relativamente fácil de inspecionar, pois o proxy possui um único endereço e porta locais. Se você executar o Pi-hole em um contêiner Docker, em outro servidor ou em várias redes, poderá precisar de um endereço de rede de contêiner em vez de um endereço de loopback e deverá restringir o listener do proxy para que ele não seja exposto como um resolvedor aberto. Se precisar de filtragem baseada em políticas, identidade por dispositivo ou DNS criptografado para dispositivos em roaming fora de casa, configure esses clientes ou um gateway gerenciado separadamente; a conexão DoH upstream do Pi-hole não criptografa automaticamente o caminho de cada cliente para o Pi-hole.

Por fim, lembre-se de que um roteador ou cliente pode ignorar o Pi-hole se anunciar um segundo servidor DNS. Para filtragem em toda a rede, forneça aos clientes apenas o endereço do Pi-hole via DHCP e leve em consideração os anúncios de DNS IPv6, bem como os IPv4. Verifique com vários dispositivos após alterar as configurações do roteador, pois uma configuração de proxy correta no servidor não impede que um cliente use outro resolvedor diretamente.

Referências oficiais

Deixar um comentário

Corrigindo o Screen Tearing em placas gráficas Intel no Pardus Linux: Um guia focado em resultados

Corrigindo o Screen Tearing em placas gráficas Intel no Pardus Linux: Um guia focado em resultados

Corrija o problema de tearing (rasgo na tela) causado por placas gráficas Intel no Pardus Linux verificando as configurações de X11 vs. Wayland, as configurações do compositor, a taxa de atualização, o driver Xorg ativo e o TearFree somente quando apropriado.

Como configurar o firewall do SLES 15 com o firewall-cmd

Como configurar o firewall do SLES 15 com o firewall-cmd

Configure o firewalld no SLES 15: verifique as zonas, permita serviços ou portas, salve regras permanentes, recarregue com segurança e verifique o acesso.

Guia de configuração de aplicação de patches em tempo real no SLES: Aplique atualizações do kernel sem reiniciar.

Guia de configuração de aplicação de patches em tempo real no SLES: Aplique atualizações do kernel sem reiniciar.

Habilite a aplicação de patches em tempo real no kernel do SLES 15 SP7, aplique correções compatíveis sem reiniciar, verifique os patches ativos e entenda quando ainda é necessário reiniciar o kernel.

Como ativar o modo FIPS no SUSE Linux Enterprise Server 15

Como ativar o modo FIPS no SUSE Linux Enterprise Server 15

Ative o modo FIPS no SLES 15 com o utilitário de configuração compatível com a SUSE, reinicie com segurança, verifique o status do kernel e da política criptográfica e verifique os limites de certificação.

Como instalar o Google Chrome no Gooroom OS sem violar as políticas de segurança

Como instalar o Google Chrome no Gooroom OS sem violar as políticas de segurança

Instale o Google Chrome no Gooroom OS com segurança usando pacotes .deb oficiais, APT, verificações de políticas, orientações de atualização e correções para dispositivos gerenciados.

Como exportar logs do sistema SLES para um servidor Syslog remoto com segurança

Como exportar logs do sistema SLES para um servidor Syslog remoto com segurança

Encaminhe com segurança os logs do sistema SLES para um servidor syslog remoto usando rsyslog, certificados TLS, verificação de nome do par, filas, validação e testes.

Integração do Active Directory do SLES 15 com o SSSD: um guia passo a passo

Integração do Active Directory do SLES 15 com o SSSD: um guia passo a passo

Integre o SLES 15 ao Active Directory com o SSSD usando o YaST. Prepare o DNS e o horário, configure os logins de domínio, verifique o Kerberos e compare o SSSD, o Winbind e o realmd.

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix RTL8821CE Wi-Fi on Pardus Linux by checking the built-in rtw88 driver, Realtek firmware, rfkill, NetworkManager, and safe fallback options.

Corrigir o problema "Falha temporária na resolução de DNS" no Debian 12 com systemd-resolved

Corrigir o problema "Falha temporária na resolução de DNS" no Debian 12 com systemd-resolved

Diagnosticar e corrigir falhas de resolução de DNS no Debian 12 com systemd-resolved, incluindo resolv.conf, NetworkManager, networkd, cache e verificação.

Como instalar o Pardus Linux em dual boot com o Windows 11 de forma segura

Como instalar o Pardus Linux em dual boot com o Windows 11 de forma segura

Instale o Pardus 25.2 ao lado do Windows 11 fazendo um backup, reduzindo o volume do Windows, inicializando a partir de um USB UEFI e protegendo as partições EFI e de recuperação existentes.