Porque usar um DNS local e algumas dicas para isto
Introdução
É bastante comum vermos usuários de internet ou até alguns provedores inteiros usando servidores DNS públicos, como o 8.8.8.8.
Os principais motivos para que usem um DNS público ao invés de um servidor local são a falta de instrução técnica sobre como instalar e configurar seu próprio servidor e o desconhecimento dos problemas causados por esta prática.
O objetivo deste artigo é explicar porquê você não deve usar um DNS público em sua rede ou sua casa e mostrar algumas alternativas gratuitas e simples para que você tenha seu próprio servidor DNS localmente.
Como material de apoio também recomendamos este vídeo, que explica de forma direta e sucinta sobre este assunto.
Problemas da utilização de um DNS público
Diminuição da velocidade de download de alguns conteúdos
Diversos sites que possuem seus conteúdos hospedados em uma rede de CDN, como Netflix, Google e Facebook, podem prover o seu conteúdo através de centenas de servidores espalhados por todo o mundo. Para determinar a partir de qual servidor eles irão te enviar conteúdo, eles utilizam a geolocalização do DNS Recursivo utilizado por você. Como podemos consultar na Maxmind, a maioria dos servidores públicos de DNS (como 8.8.8.8, 4.2.2.2 e 1.1.1.1) estão localizados em outros países, e muitas vezes até em outros continentes. Como resultado, quando você utiliza um DNS Público como os mencionados acima, estes provedores de conteúdo podem optar por te enviar dados a partir de um servidor muito distante de onde você se encontra, aumentando a latência e consequentemente diminuindo as velocidades máximas que você poderia atingir em seus downloads. Isto é explicado pelo próprio Google neste artigo.Veja um trecho da explicação traduzido: Muitos sites que provém streaming ou conteúdos para download hospedam seus conteúdos com redes de distribuição de conteúdo (CDNs) de terceiros baseadas em DNS, como a Akamai. Quando um DNS Resolver consulta um servidor de nomes autoritativo pelo endereço IP de um CDN, o servidor de nomes retorna o endereço mais próximo (em distância de rede) ao DNS Resolver, não ao usuário. Em alguns casos (...), como o DNS público do Google, o resolvedor pode não estar muito próximo dos usuários. Nestes casos, a experiência de navegação pode ser reduzida um pouco.
Não há garantia de funcionamento
Por serem serviços fornecidos gratuitamente, é de se esperar que eles não tenham qualquer obrigação contratual sobre disponibilidade dos serviços. Apesar de serem conhecidos por sua grande disponibilidade, os servidores de DNS Públicos também podem sofrer indisponibilidades, como a mencionada nesta notícia. Nestes casos, pode não haver qualquer previsão de retorno destes servidores públicos e tampouco uma justificativa para os problemas.
Suas consultas podem ser limitadas sem aviso prévio
A depender de suas configurações de NAT, alguns DNSs podem entender que o excesso de consultas originadas de sua rede são um ataque, e nestes casos podem limitar suas consultas sem qualquer aviso prévio. Estes limites causam problemas intermitentes, que muitas vezes podem ser difíceis de serem diagnosticados. Um DNS público que utiliza-se destes limites é o 4.2.2.2.
A sua privacidade pode ser violada
Como é sabido, em nosso mercado nenhum serviço gratuito é oferecido sem um propósito, geralmente. Um dos objetivos de algumas empresas em fornecer um serviço DNS gratuito e público é de otimizar seus mecanismos de marketing. Sempre que você utiliza um DNS público e/ou não confiável, todas as suas requisições podem ser lidas pelo provedor do DNS, de forma com que ele consiga adquirir uma enorme quantidade de informações sobre seus hábitos na internet e fora dela. Isto é geralmente usado para otimizar mecanismos de anúncios na internet, mas também pode ser usado para fins maliciosos, visto que você não terá qualquer controle destas informações. Ou seja, muitas vezes o serviço não é gratuito. O preço são informações sobre você.
Você pode estar sujeito à ataques cibernéticos
Novamente, por serem serviços públicos e gratuitos, muitas vezes sem uma política de uso clara, não há qualquer garantia de funcionamento e segurança dos servidores utilizados. Caso um destes DNSs seja infectado, a resposta de suas consultas pode te direcionar para páginas falsas (phishing), fazendo com que dados como logins e senhas possam ser roubados.
Você, usuário, pode se questionar se alguns desses problemas também não poderiam acontecer em um DNS local de seu provedor, e neste caso a resposta é sim. Em contrapartida, as organizações que mantém um DNS local tendem a ter um zelo ainda maior por seus próprios servidores. Uma falha ou indisponibilidade em seus servidores pode gerar centenas ou milhares de reclamações, além de prejuízos financeiros para a empresa. Além disso, o funcionamento do DNS provido pelo seu provedor é mandatório, de forma com que você poderá se queixar diretamente à ele caso tenha algum problema. O mesmo não acontece com um DNS público.
Mais pra frente neste artigo também falaremos sobre como você, provedor de internet, pode utilizar um DNS local em sua rede.
Softwares gratuitos para DNS
Selecionamos abaixo uma lista de alguns softwares gratuitos e de fácil instalação para DNSs recursivos:
Nome | Compatível com Linux | Compatível com Windows | URL do projeto | Tutorial de instalação |
---|---|---|---|---|
Unbound | Sim | Sim | https://nlnetlabs.nl/projects/unbound/about/ | https://nlnetlabs.nl/documentation/unbound/howto-setup/ , |
Bind | Sim | Sim | https://www.isc.org/downloads/bind/ | |
Dnsmasq | Sim | Não | http://thekelleys.org.uk/dnsmasq/doc.html |
Caso você conheça outra alternativa gratuita e de fácil instalação, ou queira adicionar a URL de algum tutorial oficial de instalação, fique à vontade para complementar a tabela acima.
Recomendações para instalar, configurar e gerenciar seus recursivos locais
Assegure-se que seu servidor possui o DNSSec habilitado
Por padrão grande parte dos servidores já possuem o DNSSec habilitado. Mas sempre que instalar um servidor local, certifique-se de que ele possua o protocolo habilitado e em pleno funcionamento. Através deste link você pode testar se o seu DNS Recursivo está utilizando DNSSec, além de encontrar tutoriais sobre como configurar o protocolo em servidores Unbound e Bind.
Sempre mantenha mais de um servidor local
Um dos motivos de se ter um servidor DNS Recursivo local é garantir a disponibilidade do serviço. Entretanto, caso você tenha apenas um servidor em sua rede não poderá assegurar que ele esteja sempre disponível. Sendo assim, sempre tenha dois ou mais servidores em sua rede.
Garanta que seus recursivos realmente sejam redundantes
Ter mais de um servidor nem sempre será efetivo caso eles não estejam em locais e redes distintas. Caso seus recursivos estejam em máquinas virtuais num mesmo servidor físico, uma falha de energia ou de hardware indisponibilizará todas as resoluções de nome em sua rede. Sendo assim, busque garantir que seus servidores estejam em servidores diferentes, em redes diferentes e preferencialmente em datacenters também distintos.
Utilize IPv6 em seus servidores
Ainda que por padrão seus software responda requisições IPv6 em consultas IPv4, garanta que seus servidores também possuam um endereço IPv6 e respondam consultas IPv6 only. Caso contrário, durante uma indisponibilidade de IPv4 em sua rede, você deixará de utilizar IPv6 em todo seu provedor apenas por não ter o protocolo habilitado em seus recursivos.
Restrinja as consultas ao seu servidor apenas à sua rede e à seus clientes
Diferente dos servidores públicos, o objetivo de seus servidores é apenas servir à sua rede e à seus clientes. Portanto sempre restrinja as consultas apenas aos IPs públicos e privados utilizados em sua rede. Este procedimento é fácil e geralmente é feito no arquivo de configuração do DNS. Caso não localize como fazê-lo, consulte a documentação do software.
Mantenha seu DNS atualizado
Leia periodicamente os changelogs das novas versões do software que estiver utilizando, e, caso haja uma atualização que corrija alguma falha de segurança, atualize a chave DNSSEC ou implemente algum novo recurso importante, atualize seu servidor. Tendo dois ou mais servidores, como recomendado acima, você pode fazer estas atualizações sem qualquer parada em sua rede.
Não exite em contratar um profissional para executar o serviço, se necessário
Apesar de não ser uma tarefa demasiadamente complexa, caso você não saiba como instalar e configurar devidamente seu servidor, não exite em contatar uma empresa ou profissional capacitado para isto. Geralmente instalação e manutenção de servidores de DNS oferecem um custo baixo.
Artigo por Daniel Damito