Unbound: como criar o seu próprio servidor DNS independente

Você atualmente deve usar o seu provedor de internet, o Google ou o Cloudflare como responsável pela resolução dos endereços dos sites que visita. Mas sabia que você pode facilmente montar seu próprio servidor DNS?

Como funciona o DNS

O servidor DNS é responsável por converter endereços como www.cadusilva.com em 45.77.94.32. Você não ia gostar de ter que lembrar uma série de números sempre que fosse visitar um site, né?

Imagina se fosse para lembrar endereços IPv6 então? Seria algo assim: 2001:19f0:9002:1379:5400:03ff:fe2b:dbd8. Nem pensar, né? Pois bem, para evitar isso temos essa “lista telefônica” chamada DNS.

Assim você só precisa lembrar de www.cadusilva.com e pronto. Quem cuida de transformar endereços www em sequências alfanuméricas é um servidor DNS no seu provedor de internet ou de terceiros.

Você já deve ter ouvido falar no Google Public DNS, Cloudflare ou OpenDNS. Existem muitos outros na internet e são servidores usados por quem quer mais qualidade do que aquele do provedor.

Ou então para quem deseja aproveitar recursos de segurança como Controle dos Pais ou bloqueio de vírus e anúncios. Pois bem. Mas você sabia que pode montar seu próprio servidor DNS?

Quais as vantagens?

Nova marca do servidor DNS Unbound. Foto: Reprodução.

Com o Unbound isso é perfeitamente possível. Assim você não vai depender de servidores de terceiros, nem vai compartilhar seus dados com eles. Além disso, terá um cache local de endereços visitados.

Sem falar que a consulta e resolução dos endereços que você acessar vai buscar direto na fonte: os servidores na raiz da infraestrutura DNS. A partir de lá, vai descendo pela hierarquia até encontrar o IP correspondente.

E com o recurso EDNS, será retornado o endereço do servidor mais próximo de sua localização. Isso significa que, por exemplo, sem esse recurso, o site da AliExpress responderia da China e não de São Paulo.

Ingredientes

Neste tutorial, vou usar um Raspberry Pi 4B rodando Ubuntu 20.10. Você pode instalar o Unbound em qualquer máquina e sistema compatíveis, como o Windows, OpenWRT, Debian, etc.

Porém alguns pacotes disponibilizados para algumas plataformas não são compatíveis com o EDNS, como é o caso da versão para o OpenWRT. Assim, os sites vão carregar a partir de um ponto mais distante de você.

Isso significa que vão demorar mais para abrir ou apresentar erros. Minha configuração conta com 8 GB de memória e processador de 4 núcleos, então o arquivo de configuração vai refletir isso.

Ajuste como for melhor para sua máquina. Sobre o EDNS, vale mencionar que, para os mais preocupados com a privacidade, parte do seu endereço IP é enviada junto com a consulta DNS.

Isso serve para o servidor responsável pelo domínio retornar um IP que responda mais próximo da sua localização geográfica. Antes de continuar, são necessários conhecimentos básicos do Terminal Linux e rede.

Configurando o Unbound

É bem simples esta parte. Para Windows, por exemplo, as coisas são um pouco diferentes. Uma vez que você instalar o Unbound nele, veja onde se encontra o arquivo de configuração e edite-o conforme necessário.

Em caso de dúvidas, consulte o manual do Unbound. Pra começar, vamos instalar o Unbound, neste caso no Ubuntu. Basta você ir no Terminal (ou no SSH) e digitar:

sudo apt update
sudo apt install unbound

Quando acabar o processo, vamos criar um arquivo de configuração. Para isso, digite o seguinte no Terminal:

sudo nano /etc/unbound/unbound.conf.d/meudns.conf

Agora cole dentro do arquivo acima as seguintes linhas:

Aperte CTRL+O para salvar e CTRL+X para sair do editor Nano.

Vamos então ajustar algumas coisas. A primeira delas é configurar o EDNS. Primeiro, você precisa saber o seu IP acessando esse link e anotando essa informação.

Em seguida, vamos baixar o arquivo que diz para o Unbound onde estão os servidores raiz da infraestrutura de DNS mundial. Para fazer o download, digite no Terminal:

sudo wget https://www.internic.net/domain/named.root -O /etc/unbound/root.hints

Agora vamos criar o arquivo necessário para que o recurso de segurança DNSSEC funcione corretamente e te proteja de sites falsos. Para isso, vamos criar um novo arquivo. Digite:

sudo nano /etc/unbound/root.key

Dentro dele, cole o seguinte:

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

Agora salve o arquivo e saia do Nano.

Criamos os dois arquivos que o Unbound vai procurar para funcionar e agora vamos terminar de configurar o EDNS. Para isso, abra novamente o arquivo de configuração:

sudo nano /etc/unbound/unbound.conf.d/meudns.conf

Então em client-subnet-zone cole seu IP no local informado entre aspas na mesma linha. Salve as alterações e feche o arquivo. Agora digite o seguinte para reiniciar o serviço e aplicar as mudanças:

sudo systemctl restart unbound

Pronto, tudo estando certinho, você não deve ver nenhuma mensagem de erro. Se você tiver o dig instalado, pode digitar o seguinte para testar:

dig +short @127.0.0.1 www.google.com.br

Caso esteja no Windows, experimente com o nslookup:

nslookup www.google.com.br 127.0.0.1

A resposta deve ser um endereço IP como 172.217.162.163 e nenhuma mensagem de erro.

Usando o Unbound

Agora que está tudo instalado e configurado, vamos ver como utilizar a novidade. Caso o Unbound esteja no seu PC, basta configurar seu adaptador de rede para usar 127.0.0.1 como servidor DNS.

Caso tenha instalado o Unbound em outra máquina na sua rede local (LAN) ou em um VPS, configure seu adaptador de rede para usar o IP desta máquina na LAN ou o IP do VPS como servidor DNS.

Para que toda sua rede local use seu servidor DNS novo, configure seu roteador para que utilize o IP da máquina onde o Unbound foi instalado, seja ela local ou em um VPS.

Aproveite e configure um IP estático em seu roteador para a máquina que está com o Unbound instalado e assim evite ter que reconfigurar as coisas quando o IP do dispositivo mudar.

Consulte o manual do equipamento caso tenha dúvidas sobre como mudar o servidor DNS e definir um IP estático.

Considerações finais

Então, a partir de agora, todas as consultas que você fizer serão processadas pelo Unbound em vez do seu provedor de internet ou serviço público de terceiros.

Você criou seu próprio servidor DNS com recursos de segurança e privacidade. Além disso, ele vai buscar a informação direto na fonte e cria um cache próprio para responder mais rapidamente no futuro.

Para outras configurações com diferentes modos de operação para o Unbound e para entender alguns dos recursos contidos no arquivo de configuração criado, leia este texto no site Calomel.

Uma dica legal é instalar o Unbound num Raspberry Pi. Assim você terá um equipamento na sua rede que gasta o equivalente a uma lâmpada LED barata e que vai calhar como servidor DNS para sua rede local.

Desta forma você pode manter ele sempre ligado e ainda usar para outras atividades como servidor de arquivos, servidor de mídia, console de vídeo game, servidor de torrent