Aumentar a segurança nos pedidos ao DNS com o DNSCrypt 2

DNSCrypt.png

 

Já tinha falado aqui no blog há uns anos no DNSCrypt, neste post de 2012, a especificação foi criada para dar mais segurança e privacidade aos pedidos feitos ao DNS (Domain Name System) que de outra forma poderiam ser interceptados ou pior, ser modificados sem que o utilizador final tivesse garantias da resposta obtida, com o DNSCrypt o tráfego é cifrado entre o servidor de DNS e o equipamento do utilizador.

 

A especificação foi inicialmente desenvolvida pela OpenDNS que a disponibilizou abertamente, contudo a empresa foi comprada pela Cisco em 2015 e desde então a evolução do DNSCrypt estava praticamente parada, felizmente houve programadores que pegaram no código disponibilizado e lançaram a versão 2 deste protocolo, disponível no GitHub em github.com/DNSCrypt.

 

A par desta actualização foi também disponibilizada a versão 2 do DNSCrypt Proxy, disponível em github.com/jedisct1/dnscrypt-proxy que permite utilizar o DNSCrypt v2 e ainda o DNS-over-HTTP/2, sendo que este segundo protocolo envia os pedidos DNS por HTTPS, o proxy está disponível para download e funciona em vários sistemas operativos incluindo BSD, Linux, Mac OS X e Windows.

 

A instalação e configuração são bastante simples e em poucos minutos qualquer utilizador mesmo sem grandes conhecimentos técnicos poderá incrementar significativamente a sua segurança ao utilizar a Internet, o proxy permite guardar logs dos pedidos de DNS, bloquear endereços ou IPs directamente havendo várias blacklists disponíveis, manter uma cache local para um acesso mais rápido aos endereços mais frequentemente utilizados, e fazer load balancing a uma lista de servidores DNS escolhidos pelo utilizador para obter os melhores resultados e não estar dependente apenas de um servidor.

 

No GitHub do DNSCrypt Proxy na tab "Wiki" está disponível toda a informação para instalar e configurar o proxy, mas resumindo o processo, depois de fazer o download e guardar os ficheiros é necessário editar um ficheiro de configuração que deverá ter o nome dnscrypt-proxy.toml, existe um ficheiro de exemplo bem comentado que explica cada opção, as principais são definir os servidores de DNS a serem utilizados, um endereço local, normalmente o 127.0.0.1:53, se e onde são guardados os vários logs, definir os parâmetros de cache e as listas de bloqueio.

 

Guardando as configurações no ficheiro mencionado basta correr a aplicação dnscrypt-proxy e está quase a funcionar, o último passo passa por alterar o servidor de DNS no computador definindo-o para 127.0.0.1 em vez do habitual automático ou do ISP, a partir daí todo o tráfego DNS passará a estar mais protegido entre o servidor e o utilizador, uma última nota, para ter o proxy a arrancar no boot do computador basta registar como um serviço, em Linux basta correr o comando ./dnscrypt-proxy -service install e em Windows executar o ficheiro server-install.bat.

 

Boa navegação agora em segurança pela Internet!

 

DNS seguro através do DNSCrypt

O sistema de resolução de nomes mais conhecido pela sigla DNS (Domain Name System) é um dos principais motores na utilização da Internet, o seu objectivo é converter um nome (domínio) para um endereço IP.

Assim sempre que se visita um website, envia um e-mail ou se utiliza qualquer outro serviço online estamos a utilizar o DNS.

O problema é que a informação é trocada em plain text sem segurança, e em especial no último troço da ligação à Internet, isto é, a ligação entre o ISP e o utilizador, se alguém mal intencionado tiver acesso a algum equipamento neste troço pode aceder a informação privada ou “desviar” o utilizador.

Para resolver esta falta de segurança o OpenDNS criou o DNSCrypt, que cifra o tráfego DNS entre o utilizador e o próprio OpenDNS, em analogia o mesmo que o SSL faz com o HTTP tornando o tráfego seguro (https://) e longe de olhares alheios.

Para conhecer melhor este serviço é só passar pela respectiva página – DNSCrypt, embora se encontre em Preview Release está perfeitamente funcional e disponível para Mac OS e Linux e brevemente para Windows também.

A configuração é simples e as vantagens que traz na segurança são grandes, neste tutorial vou mostar a configuração do DNSCrypt no Ubuntu 12.04.

  1. Para começar fazer o download do pacote respectivo no GitHub do OpenDNS em https://github.com/opendns/dnscrypt-proxy/downloads e instalar.
  2. No terminal executar: sudo dnscrypt-proxy -d , a opção “-d” põe o servidor a correr em background.
  3. No “Network Connections” escolhendo a ligação a utilizar fazer “Edit…” e na tab ”IPv4 Settings” escolher “Automatic (DHCP) addresses only” e no campo “DNS servers” colocar 127.0.0.2 (ou outro IP da máquina excepto 127.0.0.1 que está ocupado pelo dnsmasq, uma cache DNS local).
  4. Este passo e o próximo são opcionais mas altamente recomendados, para não ter de iniciar o serviço sempre que se desliga ou reinicia o computador ir a “Startup Applications” e fazer “Add”, preencher os campos nome e comentário (opcionais) e no comando colocar dnscrypt-proxy -d -a 127.0.0.2 .
  5. Finalmente e porque para correr são necessários privilégios de root, é preciso editar o ficheiro /etc/rc.local e adicionar dnscrypt-proxy -d -a 127.0.0.2 antes de “exit 0″.

E está feito, com isto a segurança no tráfego DNS é assegurada na ligação à Internet, para confirmar se está tudo bem configurado basta aceder aqui.