Como Configurar DNS sobre HTTPS no Linux
Este guia irá ajudá-lo a configurar e configurar DNS sobre HTTPS (DoH) em seu sistema Linux, cobrindo vários métodos de configuração e melhores práticas.
Pré-requisitos
- Sistema operacional Linux
- Privilégios de administrador (root)
- Conhecimento básico de linha de comando
- Conexão de rede estável
Usando systemd-resolved
Passo 1: Verificar Versão do systemd-resolved
systemctl --version
systemd-resolve --version
Certifique-se de que a versão seja 247 ou superior, pois essas versões suportam DoH.
Passo 2: Configurar resolved.conf
Edite /etc/systemd/resolved.conf
:
[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSOverTLS=yes
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Para DoH, adicione a seguinte configuração:
[Resolve]
DNS=https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
DNSOverTLS=no
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Passo 3: Reiniciar Serviço
sudo systemctl restart systemd-resolved
sudo systemctl status systemd-resolved
Usando NetworkManager
Passo 1: Verificar Versão do NetworkManager
nmcli --version
Certifique-se de que a versão suporta funcionalidade DoH.
Passo 2: Configurar Conexão
Configure DoH usando nmcli:
# Listar conexões atuais
nmcli connection show
# Modificar conexão especificada
sudo nmcli connection modify "Nome da Conexão" ipv4.dns "1.1.1.1,1.0.0.1" ipv4.dns-over-tls yes
sudo nmcli connection modify "Nome da Conexão" ipv6.dns "2606:4700:4700::1111,2606:4700:4700::1001" ipv6.dns-over-tls yes
Passo 3: Aplicar Alterações
sudo nmcli connection up "Nome da Conexão"
Usando Clientes Independentes
dnscrypt-proxy
- Instalação
# Debian/Ubuntu
sudo apt install dnscrypt-proxy
# Fedora
sudo dnf install dnscrypt-proxy
# Arch Linux
sudo pacman -S dnscrypt-proxy
- Configuração
Edite /etc/dnscrypt-proxy/dnscrypt-proxy.toml
:
server_names = ['cloudflare', 'google']
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = true
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
- Iniciar Serviço
sudo systemctl enable dnscrypt-proxy
sudo systemctl start dnscrypt-proxy
sudo systemctl status dnscrypt-proxy
Stubby
- Instalação
# Debian/Ubuntu
sudo apt install stubby
# Fedora
sudo dnf install stubby
# Arch Linux
sudo pacman -S stubby
- Configuração
Edite /etc/stubby/stubby.yml
:
resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 128
edns_client_subnet_private: 1
round_robin_upstreams: 1
idle_timeout: 10000
listen_addresses:
- 127.0.0.1@53
- 0::1@53
upstream_recursive_servers:
- address_data: 1.1.1.1
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.0.0.1
tls_auth_name: "cloudflare-dns.com"
- Iniciar Serviço
sudo systemctl enable stubby
sudo systemctl start stubby
sudo systemctl status stubby
Verificar Configuração
Método 1: Usando dig
# Testar resolução DNS
dig @127.0.0.1 example.com
# Verificar DNSSEC
dig @127.0.0.1 example.com +dnssec
# Verificar servidor DoH
dig @127.0.0.1 whoami.cloudflare CH TXT
Método 2: Usando resolvectl
# Visualizar configurações DNS atuais
resolvectl status
# Testar resolução DNS
resolvectl query example.com
# Verificar DNSSEC
resolvectl query --dnssec example.com
Método 3: Teste Online
- Visite site de teste de vazamento DNS
- Execute teste abrangente
- Verifique roteamento de solicitações DNS
Solução de Problemas
Problemas Comuns
-
Falha na Resolução
- Verifique conexão de rede
- Confirme arquivos de configuração
- Verifique status do serviço
- Revise logs do sistema
-
Problemas de Desempenho
- Escolha servidor mais próximo
- Otimize configurações de cache
- Monitore tempo de resposta
- Verifique recursos do sistema
-
Problemas de Compatibilidade
- Atualize pacotes
- Verifique dependências
- Confirme requisitos do sistema
- Teste configurações alternativas
Análise de Logs
- Logs do Sistema
# Visualizar logs do systemd-resolved
journalctl -u systemd-resolved
# Verificar logs do NetworkManager
journalctl -u NetworkManager
# Visualizar logs do dnscrypt-proxy
journalctl -u dnscrypt-proxy
- Diagnóstico de Rede
# Testar conectividade de rede
ping 1.1.1.1
# Verificar resolução DNS
nslookup example.com
# Verificar DNSSEC
dig example.com +dnssec
Melhores Práticas
-
Seleção de Provedor
- Avalie políticas de privacidade
- Verifique disponibilidade do serviço
- Considere localização geográfica
- Teste velocidade de conexão
-
Recomendações de Segurança
- Use provedores confiáveis
- Ative DNSSEC
- Atualizações regulares do sistema
- Monitore atividade de rede
-
Otimização de Desempenho
- Escolha servidores mais próximos
- Otimize configurações de cache
- Monitore métricas de desempenho
- Manutenção regular
Implantação Empresarial
Configuração em Todo o Sistema
-
Criar Arquivos de Configuração
- Configure systemd-resolved
- Configure NetworkManager
- Implante software cliente
-
Estratégia de Implantação
- Use gerenciamento de configuração
- Implemente monitoramento
- Planeje janelas de manutenção
-
Gerenciamento de Manutenção
- Atualizações regulares
- Monitoramento de desempenho
- Rastreamento de problemas
- Procedimentos de backup
Próximos Passos
- Lista de Servidores - Navegue pelos provedores DoH disponíveis
- Guia de Segurança - Saiba mais sobre configuração de segurança
- Otimização de Desempenho - Melhore o desempenho do DNS
- FAQ - Obtenha mais ajuda