Início
» Como fazer
»
Criptografar o DNS upstream do Pi-hole no Ubuntu Server 24.04
Criptografar o DNS upstream do Pi-hole no Ubuntu Server 24.04
Neste exemplo ilustrativo, Linh executa o Pi-hole no Ubuntu Server 24.04 e deseja criptografar as solicitações DNS que o Pi-hole envia para servidores externos. Instale o proxy reverso dnscrypt-proxy, associe-o ao 127.0.0.1:5053servidor de destino, escolha um resolvedor DNS sobre HTTPS (DoH), teste esse proxy local e, em seguida, configure o Pi-hole para usá-lo. Este passo a passo pressupõe que o Pi-hole já esteja instalado e funcionando; o caso de Linh é um exemplo hipotético, não uma instalação real ou um relatório de teste.
Escolha um método DoH atual
O Pi-hole não utiliza DoH diretamente com seu servidor DNS; normalmente, ele encaminha o DNS para um endereço IP e porta. Um proxy local faz a ponte entre os dois protocolos: o Pi-hole envia o DNS padrão para um servidor local privado, e o proxy envia solicitações criptografadas para o servidor DNS selecionado. Neste exemplo, Linh utiliza dnscrypt-proxyo mesmo servidor e mantém seu servidor em loopback, impedindo que outros dispositivos se conectem diretamente a esse proxy.
Evite iniciar uma nova instalação com a cloudflared proxy-dnsreceita antiga. A página atual do Pi-hole sobre o Cloudflare informa que esse recurso foi descontinuado pelo Cloudflare em novembro de 2025 e que novas instalações que o utilizam não são recomendadas. As instruções do Pi-hole para o dnscrypt-proxy oferecem uma alternativa com suporte. A lista de pacotes do Ubuntu Noble atualmente inclui o dnscrypt-proxy dnscrypt-proxy; as versões dos pacotes variam de acordo com a arquitetura e podem mudar conforme as atualizações são publicadas.
Comando no terminal do Ubuntu para instalar o dnscrypt-proxy a partir dos repositórios de pacotes da Noble.
1. Instale o pacote Ubuntu
Atualize as listas de pacotes do APT e instale o pacote do repositório Noble:
sudo apt update
sudo apt install dnscrypt-proxy
O pacote está no componente Universe do Ubuntu. Se o APT não conseguir localizá-lo, verifique se o Universe está habilitado e execute o comando novamente sudo apt update. Não baixe uma versão aleatória de terceiros para contornar um problema de configuração do repositório.
Antes de prosseguir, confirme se o Ubuntu instalou a unidade de socket systemd usada pelo procedimento Pi-hole:
systemctl list-unit-files dnscrypt-proxy.socket
A lista de arquivos do pacote Ubuntu Noble inclui dnscrypt-proxy.socket, e as instruções do Pi-hole usam esse socket para fornecer um ouvinte DNS local sem competir com o serviço da porta 53 do próprio Pi-hole.
Substituição de socket com os listeners TCP e UDP limpos e reassociados ao localhost na porta 5053.
2. Associe o proxy ao localhost na porta 5053.
O serviço DNS FTL do Pi-hole normalmente utiliza a porta 53. Atribua uma porta diferente ao dnscrypt-proxy e configure-o para se conectar apenas ao próprio servidor. Crie uma configuração adicional no systemd:
sudo systemctl edit dnscrypt-proxy.socket
Adicione estas linhas ao arquivo de sobrescrita vazio, salve e saia:
As atribuições em branco limpam os listeners originais da porta 53 da unidade de socket antes que os novos endereços sejam adicionados. Manter o listener em `/var/www/html` 127.0.0.1é importante: não o altere para `/ 0.0.0.0var/www/html` nesta configuração de mesmo host, pois isso exporia o proxy em todas as interfaces de rede.
Configurações TOML do dnscrypt-proxy que usam ativação de socket systemd e selecionam o resolvedor de segurança Cloudflare.
3. Selecione o resolvedor DoH
Abra o arquivo de configuração do pacote:
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Defina os seguintes valores, mantendo o restante da configuração original intacto:
Uma listen_addresseslista vazia instrui o dnscrypt-proxy a usar a ativação de socket do systemd. O resolvedor Cloudflare Security, mencionado no guia do dnscrypt-proxy do Pi-hole, é o exemplo utilizado; ele aplica a filtragem de malware do resolvedor, além das listas de bloqueio do próprio Pi-hole. Se você preferir outro provedor ou nenhuma filtragem de segurança adicional, escolha um resolvedor DoH atual na lista pública de resolvedores e use o nome exato do servidor. Os nomes e políticas de resolução disponíveis podem mudar, portanto, verifique a entrada atual em vez de copiar um nome desatualizado de uma publicação antiga.
Reinicie o socket e o serviço para que as configurações de substituição e TOML entrem em vigor:
Em seguida, teste o ouvinte local antes de alterar o servidor upstream do Pi-hole:
dig @127.0.0.1 -p 5053 example.com
Uma resposta DNS e um código de saída zero indicam que o proxy local respondeu à consulta. Para confirmar se o servidor upstream selecionado utiliza DoH, inspecione as mensagens de serviço recentes e procure pelo resolvedor marcado com um ponto e vírgula (:) OK (DoH).
Caso dignão esteja instalado, instale dnsutilso pacote do Ubuntu. Se a consulta expirar ou o log não mostrar um resolvedor DoH, inspecione sudo systemctl status dnscrypt-proxy.socket dnscrypt-proxy.serviceo registro de serviços antes de prosseguir.
Comando da CLI do Pi-hole para definir o proxy DNS criptografado local como o resolvedor upstream.
4. Aponte o Pi-hole para o proxy local.
Somente após o teste local funcionar, substitua a lista de ouvintes upstream do Pi-hole pelo ouvinte local:
O valor utiliza o formato personalizado de upstream do Pi-hole: 127.0.0.1é o host local e #5053especifica a porta DNS não padrão. Você também pode inserir 127.0.0.1#5053em Configurações > DNS > Servidores DNS upstream personalizados na interface de administração do Pi-hole. Desmarque os upstreams públicos predefinidos e salve, caso contrário, o Pi-hole poderá continuar enviando algumas solicitações diretamente para eles sem usar DoH.
Verifique o caminho completo
Consultar o próprio Pi-hole, usando seu endereço LAN em vez de PIHOLE_IP:
dig @PIHOLE_IP example.com
Confirme se a pesquisa foi bem-sucedida, se o registro de consultas do Pi-hole mostra a solicitação do cliente e se o status ou os registros do serviço dnscrypt-proxy mostram que o servidor upstream selecionado está acessível. O caminho resultante deve ser: cliente para Pi-hole na sua rede local (LAN), depois Pi-hole para o proxy local e, em seguida, proxy para o resolvedor DoH. Isso criptografa o trecho do servidor para o resolvedor; não criptografa o tráfego DNS comum entre um cliente e o Pi-hole na LAN, não oculta as consultas do resolvedor escolhido nem transforma o Pi-hole em uma VPN.