DNSCrypt-Proxy na Debian

Criptografando a comunicação com resolvedor DNS

Dica por Carlos Silva

Motivação para escrever este artigo

Se você utiliza o navegador Mozilla Firefox seja em sistemas GNU ou em Janelas, sabe (ou pelo menos ouviu falar) que existe um protocolo que garante a privacidade nas buscas feitas pelo navegador. Este protocolo chama-se DNS sobre HTTPS (DoH).

O protocolo DNS sobre HTTPS vem por padrão no Firefox, mas não vem ativado por padrão. Se o DoH for ativado no navegador, toda comunicação com os resolvedores DNS é criptografada garantindo segurança e privacidade.

A segurança e privacidade só está garantida enquanto você está usando o navegador, outros aplicativos, por exemplo: buscas em mensageiros, outro navegador sem suporte a DoH ou até mesmo e-mails (exceto usando GnuPG), no sistema operacional continuam comunicando-se com os resolvedores DNS da forma tradicional, isto é, sem criptografia.

Foi pensando nisto que resolvi escrever este pequeno artigo. Dar boas notícias a você, que há uma maneira de força todos os aplicativos que comunicam-se com a internet a usarem criptografia. Acredite, podemos criar um túnel, não é nada complexo (exceto se desejar ficar anônimo) e está ao alcance de todo(a)s.

Poderemos fazer isto usando o DNSCrypt-Proxy.

O que é DNSCrypt-Proxy?

É um protocolo de rede projetado especificamente para criptografar a comunicação entre um computador cliente e um resolvedor DNS. O protocolo utiliza assinaturas para verificar se as respostas se originam do resolvedor escolhido e não foram modificadas.

O protocolo foi disponibilizado num resolvedor DNS público pela primeira vez pela empresa OpenDNS (CISCO Umbrella) em dezembro de 2011. Vários resolvedores públicos, muitos ligados ao projeto OpenNIC, adotaram o protocolo DNSCrypt.

DNSCrypt pode usar tanto o protocolo UDP quanto TCP numa conexão. A porta padrão em ambos os casos é a 443, a mesma utilizada por HTTPS.

DNSCrypt está disponível para os sistemas operacionais: GNU/Linux, FreeBSD, Microsoft Windows, Apple MacOS, Oracle Solaris, iOS e Android.

Porque usar DNSCrypt-Proxy?

Veja alguns motivos para usar DNSCrypt em seu sistema operacional Debian:

Instalando DNSCrypt-Proxy na Debian

O sistema operacional que estou utilizando é a Debian Buster, então a linguagem utilizada neste artigo é sobre este sistema.

A instalação do pacote DNSCrypt-Proxy na Debian é bastante simples. O pacote está disponível no repositório main da Debian estável, testing e instável. Não há backports para o pacote DNSCrypt-Proxy.

Comece atualizando o repositório de pacotes:

$ sudo apt update

Em seguida, instale o pacote DNSCrypt-Proxy:

$ sudo apt install dnscrypt-proxy

Arquivo de configuração

O arquivo de configuração encontra-se em /etc/dnscrypt-proxy/. Uma configuração complementar não é necessária, exceto para configurar Anonymized DNS que não será abordado neste artigo, pois a única mudança importante que você poderá fazer no momento é mudar o servidor padrão para um de sua escolha.

Use o editor de sua preferência, neste caso usarei o nano.

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

Descomente a linha: “server_names” e substitua o nome do servidor padrão por outro que atenda as suas necessidades.

Por exemplo:

server_names = ['google'] 

poderá mudar para:

server_names = ['cloudflare'] e assim por diante. 

Uma lista completa de servidores usando o protocolo DNSCrypt você encontrará no link a seguir: https://dnscrypt.info/public-servers/

Se você tem dúvida na escolha de um servidor, recomendo a você, usar um destes: Google, Cloudflare, Quad9 ou OpenDNS.

Salve as mudanças no arquivo dnscrypt-proxy.toml com CTRL + O e saia do editor nano com CTRL + X.

Configuração no Gerenciador de Redes

Neste pequeno artigo estou usando o ambiente de trabalho LXDE. Nele estou usando como gerenciador de redes o Network-Manager e Network-Manager-Gnome (interface gráfica).

Então, usando a interface gráfica do network-manager, siga estes passos:

  1. Clique em editar conexões: Selecione a sua conexão padrão de internet: wired (com fio) ou wi-fi (sem fio).

  2. Escolha: Editar conexão selecionada.

  3. Siga para Configurações de IPv4.

  4. Método: Somente endereços (DHCP) automáticos.

  5. Servidores DNS: Defina para: 127.0.2.1

Etapas concluídas, agora clique no botão salvar para guardar as configurações.

Reiniciando os Serviços

Depois de realizar as configurações básicas, será preciso reiniciar os serviços, você também pode reiniciar o sistema operacional por completo se não confia em comandos, de rede e do protocolo DNSCrypt.

Primeiro: reinicie DNSCrypt

$ sudo systemctl restart dnscrypt-proxy

Segundo: reinicie o serviço de rede

$ sudo systemctl restart NetworkManager

Prontinho! DNSCrypt-Proxy instalando e rodando em seu sistema operacional Debian. A comunicação com o resolvedor DNS será criptografada independente da aplicação usada.

Teste de vazamento de DNS

Depois de instalado e tendo reiniciado os serviços, você poderá agora realizar um teste de vazamento de DNS. Esta etapa é muito importante, pois garante se está tudo funcionando corretamente.

Faça o teste online por meio destes serviços:

1.ExpressVPN – DNS Leak Test:

https://www.expressvpn.com/pt/dns-leak-test

ou

2.Perfect Privacy – DNS Leak Test:

https://www.perfect-privacy.com/en/tests/dns-leaktest

Se estiver tudo funcionando, o resultado do teste mostrará o IP e o nome do servidor na qual você escolheu.

Por exemplo:

IP: 172.68.17.5 -- Servidor: Cloudflare -- Pais: Brazil

Importante!!

Lembre-se que você não ficará anônimo (somente Anonimized DNSCrypt garante isto) perante seu provedor de internet (ISP) com as configurações feitas neste artigo. Também não substitui uma boa VPN. Mas, a boa notícia é que você terá privacidade e um pouco de segurança nas consultas online.

Licença de Cultura livre

Licença Creative Commons
Esta obra está sob a Licença Creative Commons Atribuição 4.0 Internacional.