Dnscrypt-proxy

Ir para: navegação, pesquisa
Dnscrypt-proxy.png
  • Terminal-icon.png DNSCrypt-proxy
    dnscrypt-proxy
  • Um 'proxy' flexível com cifragem de DNS
  • Criador:
    Frank Denis e outros
  • Licença:
    ISC

O DNSCrypt-proxy é um 'proxy' flexível compatível com protocolos modernos de cifragem de DNS como o DNSCrypt v2, DNS-over-HTTPS, Anonymized DNSCrypt e ODoH (Oblivious DoH). Utilizado com a função de prevenir o sequestro de DNS, compara assinaturas cifradas para verificar a autenticidade das respostas do servidor de DNS escolhido.

O que é DNS?

É uma base de dados globalmente distribuída que mapeia nomes a valores. É utilizada constantemente por todas as aplicações que se comunicam através da Internet ou redes privadas. Tipicamente traduz nomes como www.google.com para valores IP como 216.58.199.36 para que os dispositivos possam saber que caminho seguir para comunicar-se.

Mas qual é o problema?

Originalmente, o protocolo DNS não incluía qualquer cifragem ou mecanismo de autenticação. Qualquer dispositivo entre o cliente e o servidor DNS podia monitorizar ou interferir no tráfego de dados, sem que o cliente o pudesse saber. Atacantes numa rede local podem abusar disso e conduzir ataques regulares. Mais recentemente, descobriu-se que servidores DNS maliciosos estavam a ser utilizados massivamente por 'malwares'.

Funcionalidades

  • Cifragem de tráfego e autenticação de DNS. Suporta DNS-over-HTTPS (DoH) usando TLS 1.3 e QUIC, DNSCrypt, Anonymized DNS e ODoH
  • O endereço IP do cliente pode se ocultado usando Tor, 'proxies' SOCKS ou repetidores Anonymized DNS
  • Monitorização das chamadas DNS, com ficheiros de registo separados para chamadas suspeitas e regulares
  • Filtragem: boqueio de publicidade, 'malware', e outros conteúdos indesejados. Compatível com todos os serviços DNS
  • Filtragem baseada em tempo, com uma agenda semanal flexível
  • Redirecionamento transparente de domínios específicos para servidores específicos
  • Armazenamento temporário de DNS, para reduzir a latência e aumentar a privacidade
  • Bloqueio local de IPv6 para reduzir a latência em redes IPv4
  • Balanceio de carga: dado um grupo de servidores, o dnscrypt-proxy mede automaticamente e mantém um registo da velocidade destes, balanceando o tráfego entre os mais velozes disponíveis
  • Atualização automática da lista de servidores em segundo plano
  • Pode forçar as ligações de saída a usarem TCP
  • Compatível com DNSSEC
  • Inclui um servidor local DoH para suportar ECH (ESNI)

Instalação

Yast-icon.png
Via YaST

Abra o YaST --> Gerenciamento de Software. Procure pelo pacote "Dnscrypt-proxy". Marque a caixa para instalação (v verde). Clique no botão Aceitar para iniciar a instalação.

Terminal-icon.png
Via Zypper
sudo zypper in dnscrypt-proxy

Uso

Antes de utilizar o DNSCrypt, verifique quais servidores DNS está usando com o sítio DNS leak test. Clique em Standard test e aguarde a conclusão do teste. Os ISPs geralmente utilizam servidores DNS locais identificáveis pelo nome.

Há várias formas de o utilizar e assegurar-se de que arranque junto ao sistema. Consulte o ficheiro /usr/share/doc/packages/dnscrypt-proxy/README.openSUSE para mais informação. Utilizei a opção E do dado ficheiro. Para tal, há de instalar o pacote openresolv. Escreva no terminal:

sudo zypper in openresolv

Será feita uma cópia de segurança do ficheiro /etc/resolv.conf, alterada a sua informação inicial e criado um ficheiro /etc/resolvconf.conf. Neste, adicione a opção de otimização utilizada pelo dnscrypt-proxy. Escreva no terminal:

sudo nano /etc/resolvconf.conf

e adicione no fim do ficheiro a linha:

resolv_conf_options=edns0

Guarde as alterações e feche o ficheiro. Temos de configurar o network-manager para não reescrever o /etc/resolv.conf. Escreva no terminal:

sudo nano /etc/sysconfig/network/config

Procure pela linha NETCONFIG_DNS_POLICY="auto" e apague o “auto”, ficando então NETCONFIG_DNS_POLICY="". Guarde as alterações e feche o ficheiro.

Há um ficheiro de configuração para a personalização da escolha dos servidores DNS. Por omissão, servidores censurados (para controlo parental, bloqueio de publicidade etc) e que suportam DNSSEC (extensão de segurança para DNS que teve adoção limitada, sendo incompatível com alguns dispositivos e aplicativos) são desativados. Caso queria mudar tal configuração, escreva no terminal:

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

Altere a linha require_dnssec = false para require_dnssec = true para utilizar servidores com DNSSEC.

Altere a linha require_nofilter = true para require_nofilter = false para utilizar servidores censurados.

Para otimização, se usa uma ligação só IPv4, altere block_ipv6 = false para block_ipv6 = true.

Há uma lista atualizada automaticamente de todos os servidores DNS disponíveis e suas opções de utilização em DNScrypt & DOH servers. Finalmente, inicie o dnscrypt-proxy com:

systemctl start dnscrypt-proxy-resolvconf.service

E ative o serviço com:

systemctl enable dnscrypt-proxy-resolvconf.service

Verificação

Há diversas formas para verificar se o serviço está a correr bem na máquina explicadas em Verificando - DNSCrypt. Optei pela verificação com o sítio DNS leak test onde se pode visualizar os servidores DNS utilizados pelo navegador. Basta clicar em Standard test.

Se fez o teste anteriormente, notará a mudança nos servidores DNS utilizados.