DNSCrypt (Português)
DNSCrypt é um software que criptografa o tráfico DNS entre o usuário e o provedor DNS reverso e previne ataques de espionagem, falsificação ou man-in-the-middle.
Contents
Instalação
Instale dnscrypt-proxy dos repositórios oficiais.
Configução
/etc/dnscrypt-proxy.conf.example
é fornecido, mas note que o systemd substitui a opção LocalAddress
por um arquivo socket.
Para configurar o dnscrypt-proxy, execute as seguintes etapas:
Escolher resolvedor DNS
Escolha um resolvedor DNS no arquivo /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv
e edit /etc/dnscrypt-proxy.conf
, usando o nome curto da primeira coluna do arquivo csv, Name
. Por exemplo, para selecionar dnscrypt.eu-nl como resolvedor DNS:
ResolverName dnscrypt.eu-nl
- Uma lista mais potencialmente mais atualizada está disponível diretamente na página oficial.
- Nesta fase, você também pode adicionar um usuário não privilegiado para executar o dnscrypt. Veja #dnscrypt runs with root privileges[broken link: invalid section].
Modificando o resolv.conf
Depois de selecionar um resolvedor DNS do dnscrypt, modifique o arquivo resolv.conf e substituia o conjunto atual de endereços para o endereço do localhost:
nameserver 127.0.0.1
outros programas podem substituir esta configuração. Veja resolv.conf#Preserve DNS settings para mais detalhes.
Iniciando o serviço Systemd
Finalmente, inicie e habilite o dnscrypt-proxy.service
Dicas
DNSCrypt com cache DNS local
É recomendado executar DNSCrypt com cache DNS, caso contrário cada requisição será enviada ao servidor DNS reverso. Importante observar que se o Domínio mudar de endereço durante o tempo de vida do cache o registro local estará desatualizado. Abaixo temos dois exemplos de configuração para Unbound e dnsmasq.
Configuração para Unbound
Configure Unbound e adicione as seguintes linhas no fim da seção server
em /etc/unbound/unbound.conf
:
/etc/resolv.conf
deve estar configurado com nameserver 127.0.0.1
, mais informações para configurar /etc/resolv.conf para usar servidor DNS local[broken link: invalid section]
do-not-query-localhost: no forward-zone: name: "." forward-addr: 127.0.0.1@2053
Inicie o serviço systemd unbound.service
. Então configure DNSCrypt para combinar o novo IP e porta forward-zone
do Unbound em /etc/conf.d/dnscrypt-proxy
:
DNSCRYPT_LOCALIP=127.0.0.1 DNSCRYPT_LOCALPORT=2053
unbound.service
numa linha Before=
na seção [Unit]
de dnscrypt-proxy.service
Reinicie dnscrypt-proxy.service
e unbound.service
para que as modificações tenham efeito.
Configuração para dnsmasq
Configure dnsmasq como cache local DNS. Segue configuração básica:
/etc/dnsmasq.conf
no-resolv server=127.0.0.2#2053 listen-address=127.0.0.1
Se você configurou DNSCrypt para usar DNS reverso com validação DNSSEC habilitada, certifique de habilitar, também, em dnsmasq:
/etc/dnsmasq.conf
proxy-dnssec
Configure DNSCrypt DNSCRYPT_LOCALIP
apontando para o servidor dnsmasq 127.0.0.2
e DNSCRYPT_LOCALPORT
para sua respectiva porta (também no servidor dnsmasq) #2053
:
/etc/conf.d/dnscrypt-proxy
DNSCRYPT_LOCALIP=127.0.0.2 DNSCRYPT_LOCALPORT=2053
Reinicie dnscrypt-proxy.service
e dnsmasq.service
para que as modificações tenham efeito.
Enable EDNS0
Extension Mechanisms for DNS (inglês) que, dentre outras coisas, permite a um cliente especificar o tamanho de um pacote de resposta sobre UDP.
Adicione o que se segue ao seu arquivo /etc/resolv.conf
:
options edns0
Você talvez deseje adicionar o seguinte argumento a dnscrypt-proxy:
--edns-payload-size=<bytes>
O tamanho padrão seria 1252 bytes, com valores até 4096 bytes com suposta segurança.. Um valor inferior ou igual a 512 bytes desabilita este mecanismo ao menos que o cliente envie um pacote com um seção OPT especificando o tamanho do pacote.
Teste EDNS0
Faça uso da ferramenta DNS Reply Size Test Server, use dig, uma ferramenta de linha de comando disponível com o pacote dnsutils[broken link: replaced by bind-tools] dos repositórios oficiais, para emitir uma consulta TXT para o nome rs.dns-oarc.net:
$ dig +short rs.dns-oarc.net txt
Com suporte ao EDNS0, a saída seria similar a isto:
rst.x3827.rs.dns-oarc.net. rst.x4049.x3827.rs.dns-oarc.net. rst.x4055.x4049.x3827.rs.dns-oarc.net. "2a00:d880:3:1::a6c1:2e89 DNS reply size limit is at least 4055 bytes" "2a00:d880:3:1::a6c1:2e89 sent EDNS buffer size 4096"