ilustração 2D com as iniciais DNS rodeadas de elementos relacionados
Adobe Stock/Tatyana

O DNS (Sistema de Nomes de Domínio) é a espinha dorsal da internet, traduzindo nomes de domínio em endereços IP. No entanto, o tráfego DNS não é criptografado por padrão, o que pode expor suas consultas a interceptações e monitoramento. Uma solução para isso é o DNS-over-HTTPS (DOH), que criptografa as consultas DNS usando HTTPS.

Neste tutorial, aprenderemos como habilitar o DNS-over-HTTPS em todo o sistema no Linux, protegendo todas as suas consultas. Vamos focar no Fedora 40, mas as instruções devem funcionar em outras distribuições Linux com Systemd.

Leia também: DNS-over-HTTPS e DNS-over-TLS: Qual a diferença?

Instalação do dnscrypt-proxy

O primeiro passo é instalar o dnscrypt-proxy, que atua como um cliente para servidores DOH. Execute o seguinte comando no terminal:

Fedora

sudo dnf install dnscrypt-proxy

Arch Linux

sudo pacman -S dnscrypt-proxy

Ubuntu

sudo apt install dnscrypt-proxy

Configuração do dnscrypt-proxy

Agora, precisamos editar o arquivo de configuração do dnscrypt-proxy. Use o seguinte comando para abrir o arquivo:

sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml

No exemplo abaixo, adicionaremos dois servidores:

server_names = ['adfilter', 'ahadns']
listen_addresses = ['127.0.0.1:53']

Você também pode adicionar servidores populares, como ‘cloudflare’ ou ‘google’, ao campo server_names. Para cada servidor DOH, você precisa encontrar o “stamp”, geralmente disponível no site do provedor DNS.

[static]

[static.'adfilter']
stamp='sdns://AgMAAAAAAAAADjE2My40Ny4xMTcuMTc2oMwQYNOcgym2K2-8fQ1t-TCYabmB5-Y5LVzY-kCPTYDmIEROvWe7g_iAezkh6TiskXi4gr1QqtsRIx8ETPXwjffOEGFkbC5hZGZpbHRlci5uZXQKL2Rucy1xdWVyeQ'

[static.'ahadns']
stamp='sdns://AgMAAAAAAAAACTUuMi43NS43NQARZG9oLm5sLmFoYWRucy5uZXQKL2Rucy1xdWVyeQ'

Reinicie o serviço

Após salvar o arquivo de configuração, reinicie o serviço:

sudo systemctl restart dnscrypt-proxy.service

Configuração do systemd-resolved

O servidor DNS padrão em sistemas Linux modernos é o systemd-resolved. Vamos configurá-lo para encaminhar todas as consultas DNS para o dnscrypt-proxy, que está ouvindo em 127.0.0.1:53.

Crie um arquivo de configuração para o systemd-resolved:

sudo cat <<EOF | sudo tee /etc/systemd/resolved.conf.d/dns_servers.conf
[Resolve]
DNS=127.0.0.1
Domains=~.
EOF

Certifique-se de que todas as linhas no arquivo /etc/systemd/resolved.conf estejam comentadas.

Agora, reinicie o resolved:

sudo systemctl restart systemd-resolved.service

Com essas configurações, suas consultas DNS serão criptografadas e enviadas via HTTPS. Proteja sua privacidade e segurança online com o DNS-over-HTTPS no Linux.