Como Verificar e Configurar Servidores DNS no Linux: Dos Conceitos Básicos às Medidas de Segurança

Verificar e configurar precisamente servidores DNS em um sistema Linux é extremamente importante para manter a estabilidade e eficiência da sua rede. Este artigo fornece um guia abrangente tanto para iniciantes quanto para usuários avançados sobre como verificar e configurar servidores DNS no Linux. Começando com conceitos básicos, ele abrange o uso de ferramentas específicas de linha de comando, edição de arquivos de configuração, solução de problemas e abrange conhecimento prático de forma completa. Como resultado, seu sistema Linux se tornará mais eficiente no acesso a recursos na Internet.

Índice

O que é DNS: Uma Explicação do Conceito Básico

O Sistema de Nomes de Domínio (DNS) é um sistema que converte nomes de domínio da internet em endereços IP e vice-versa. Ele desempenha um papel crucial ao tornar possível as buscas na internet e o acesso a sites, traduzindo nomes de domínio memoráveis (por exemplo, www.example.com) em endereços IP numéricos (por exemplo, 192.0.2.1) que os computadores podem entender. Este processo, conhecido como “resolução de nomes”, facilita a recuperação de informações na internet.

O DNS tem uma estrutura hierárquica com os “Servidores DNS Raiz” no topo, gerenciando a última parte dos nomes de domínio (por exemplo, .com, .org). Estes são seguidos por “Servidores de Domínio de Nível Superior (TLD)”, depois “Servidores DNS Autoritativos”, e finalmente, “Servidores DNS Locais” respondem às consultas dos usuários nesta estrutura organizada.

Quando um usuário digita um nome de domínio em um navegador web, o servidor DNS local procura pelo endereço IP correspondente. Se o servidor DNS local não tiver a informação, a solicitação é passada para servidores DNS de nível superior até que a informação necessária seja recuperada. Este processo geralmente é concluído em milissegundos, permitindo que o usuário acesse a página web.

O sistema DNS é indispensável para a infraestrutura da internet, e sua operação eficiente impacta significativamente no desempenho e acessibilidade da web. Portanto, configurar e gerenciar adequadamente servidores DNS em sistemas Linux é uma habilidade crucial para administradores de sistema.

Como Verificar Servidores DNS: Usando Ferramentas de Linha de Comando

Existem várias maneiras de verificar as configurações de servidores DNS em sistemas Linux, mas o método mais direto e comum é usando ferramentas de linha de comando. Aqui, introduzimos duas ferramentas amplamente utilizadas: o comando cat e o comando nmcli.

Verificando /etc/resolv.conf com o Comando `cat`

O método mais básico é exibir o arquivo /etc/resolv.conf. Este arquivo contém os endereços dos servidores DNS usados pelo sistema para a resolução de DNS. Você pode verificar seu conteúdo executando o seguinte comando:

cat /etc/resolv.conf

A saída pode parecer com isto:

# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

Neste exemplo, as linhas com nameserver indicam os endereços IP dos servidores DNS, com 192.168.1.1 e o endereço DNS público do Google 8.8.8.8 sendo configurados.

Verificando Servidores DNS com o Comando `nmcli`

Em sistemas que usam NetworkManager, você pode usar o comando nmcli para verificar as configurações de DNS da conexão de rede atual. O seguinte comando recupera informações do servidor DNS:

nmcli device show | grep IP4.DNS

Este comando extrai e exibe as configurações do servidor DNS (IPv4) das informações do dispositivo de rede atual. A saída pode parecer com isto:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

Estes métodos permitem verificar facilmente as informações do servidor DNS configuradas no seu sistema Linux, o que pode ser útil para diagnosticar problemas de conexão de rede ou considerar alterações em um servidor DNS específico.

Como Configurar Servidores DNS: Editando /etc/resolv.conf

Um dos métodos básicos para configurar servidores DNS em um sistema Linux é editando diretamente o arquivo /etc/resolv.conf. Este arquivo mantém uma lista de servidores DNS aos quais o sistema se refere para a resolução de DNS. Aqui, explicamos como editar este arquivo de forma segura.

Editando o Arquivo /etc/resolv.conf

  1. Primeiro, faça um backup das configurações atuais. É importante poder restaurar o arquivo original em caso de problemas. Use o seguinte comando para criar um backup:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Em seguida, use um editor de texto para editar o arquivo /etc/resolv.conf. Aqui usamos o editor nano, mas você pode usar seu editor preferido como vi ou emacs:
sudo nano /etc/resolv.conf
  1. Uma vez que o arquivo esteja aberto, adicione ou edite as linhas começando com nameserver para especificar endereços de servidores DNS. Por exemplo, para usar os endereços DNS públicos do Google, você escreveria:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Após fazer as alterações, salve o arquivo e saia do editor. Se você estiver usando nano, pressione Ctrl + O para salvar e Ctrl + X para sair.

Ativando as Novas Configurações

Após editar o arquivo /etc/resolv.conf, geralmente é necessário reiniciar o serviço de rede para aplicar as alterações. Isso pode ser feito com o seguinte comando:

sudo systemctl restart network.service

Ou, se você estiver usando NetworkManager, pode reiniciar a conexão de rede com este comando:

sudo systemctl restart NetworkManager

Isso aplica as novas configurações de DNS ao seu sistema. Para garantir que as configurações estejam funcionando corretamente, é recomendado testar acessando sites ou usando comandos como ping para resolver nomes de domínio.

A configuração manual do servidor DNS é eficaz para ajustar estratégias de resolução de DNS de acordo com requisitos do sistema ou da rede. No entanto, este método pode não ser adequado para soluções de longo prazo, pois o arquivo /etc/resolv.conf pode ser sobrescrito automaticamente por outros processos. Portanto, considere usar ferramentas como resolvconf, systemd-resolved ou NetworkManager para gerenciar as configurações de DNS.

Verificando e Alterando Configurações de DNS com Ferramentas de Linha de Comando

O Linux oferece vários métodos para verificar e alterar configurações de DNS usando a linha de comando, sem depender de ferramentas de interface gráfica do usuário (GUI). Esses métodos são particularmente úteis para ambientes de servidor ou gerenciamento de sistemas remotos. Aqui, explicamos métodos usando os comandos systemd-resolve e nmcli.

Verificando Configurações de DNS com o Comando `systemd-resolve`

Em sistemas que usam systemd, o comando systemd-resolve pode ser usado para verificar as configurações de DNS atuais. Este comando está relacionado ao serviço systemd-resolved e fornece configuração e estatísticas de resolução de nomes.

Para verificar as configurações de DNS, execute o seguinte comando:

systemd-resolve --status

Este comando fornece uma saída detalhada incluindo os servidores DNS em uso, domínios de pesquisa e outras informações relacionadas à rede. A saída é dividida por interface de rede, com cada seção exibindo configurações para essa interface.

Alterando Configurações de DNS com o Comando `nmcli`

Em sistemas que usam o NetworkManager, o comando nmcli pode ser usado para alterar configurações de DNS. nmcli é uma ferramenta de linha de comando para configurar e gerenciar conexões de rede.

Por exemplo, para definir servidores DNS para uma conexão específica, use o seguinte comando:

nmcli connection modify <nome da conexão> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <nome da conexão> ipv4.ignore-auto-dns yes
nmcli connection up <nome da conexão>

Neste comando, os servidores DNS do Google (8.8.8.8 e 8.8.4.4) são definidos para a conexão nomeada <nome da conexão>. A opção ipv4.ignore-auto-dns yes é usada para ignorar as configurações de DNS obtidas automaticamente e usar o DNS especificado manualmente. Finalmente, o comando nmcli connection up é usado para reiniciar a conexão e aplicar as novas configurações.

Estas ferramentas de linha de comando permitem verificar e alterar flexivelmente as configurações de DNS em sistemas Linux. Elas são particularmente úteis para administração remota de sistemas e automação por meio de scripts.

Configurações de DNS com systemd-resolved

systemd-resolved é um resolvedor de DNS moderno integrado ao gerenciador de sistema e serviços systemd. Ele oferece várias funcionalidades, como cache de DNS, validação DNSSEC e roteamento de registros, otimizando o processo de resolução de DNS. Aqui, explicamos como gerenciar configurações de DNS usando systemd-resolved.

Visão Geral do systemd-resolved

systemd-resolved lida com solicitações de resolução de DNS de aplicações locais, armazenando respostas de servidores DNS externos em cache para melhorar a velocidade e confiabilidade da resolução de nomes. Ele também gerencia o arquivo /etc/resolv.conf, fornecendo uma estratégia de resolução de DNS para todo o sistema.

Ativando e Configurando systemd-resolved

A maioria das distribuições Linux modernas tem o systemd-resolved ativado por padrão. No entanto, se não estiver ativado, você pode iniciar e habilitar o serviço usando o seguinte comando:

sudo systemctl enable --now systemd-resolved.service

Uma vez ativado, você pode editar o arquivo /etc/systemd/resolved.conf para definir endereços de servidores DNS personalizados. É recomendado fazer um backup do arquivo antes de editá-lo.

sudo nano /etc/systemd/resolved.conf

Por exemplo, para usar os servidores DNS públicos do Google, você definiria o seguinte:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

A opção DNS especifica os endereços IP dos servidores DNS primários a serem usados, separados por espaços. FallbackDNS lista servidores DNS a serem usados se os servidores primários estiverem indisponíveis.

Após alterar as configurações, reinicie o serviço systemd-resolved para aplicar as alterações:

sudo systemctl restart systemd-resolved

A Relação Entre systemd-resolved e /etc/resolv.conf

Em sistemas que usam systemd-resolved, é recomendado vincular o arquivo /etc/resolv.conf a /run/systemd/resolve/stub-resolv.conf. Isso habilita o uso do cache DNS local e dos recursos de encaminhamento fornecidos por systemd-resolved. Para configurar o link simbólico, use o seguinte comando:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Isso permite que o systemd-resolved gerencie o processo de resolução de DNS do sistema, fornecendo uma conexão à internet mais rápida e segura.

Gerenciando DNS com o Gerenciador de Rede

Em sistemas Linux, o Gerenciador de Rede (NetworkManager) é a ferramenta mais comumente usada para configuração e gerenciamento de rede. Ele facilita o gerenciamento de várias interfaces de rede, incluindo redes sem fio, redes cabeadas, banda larga móvel e conexões VPN. As configurações de DNS também podem ser gerenciadas por esta ferramenta. Aqui, discutimos como configurar o DNS usando o Gerenciador de Rede.

Alterando Configurações de DNS com o Gerenciador de Rede

Com o Gerenciador de Rede, você pode alterar configurações de DNS usando tanto a interface gráfica do usuário (GUI) quanto a interface de linha de comando (CLI). Para a CLI, o comando nmcli é muito útil.

Para alterar as configurações de DNS para uma conexão de rede específica, primeiro identifique o nome da conexão. Você pode listar todas as conexões de rede disponíveis com o seguinte comando:

nmcli connection show

Então, use o nome da conexão para definir os servidores DNS. O seguinte comando define os endereços dos servidores DNS para a conexão chamada “nome da conexão”:

nmcli connection modify "nome da conexão" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "nome da conexão" ipv4.ignore-auto-dns yes
nmcli connection up "nome da conexão"

Este comando define os servidores DNS do Google (8.8.8.8 e 8.8.4.4) para uma conexão específica, ignorando as configurações de DNS obtidas automaticamente. Finalmente, a conexão é reiniciada usando nmcli connection up para aplicar as configurações.

Alterando Configurações Globais de DNS

Você também pode usar o Gerenciador de Rede para alterar as configurações de DNS de todo o sistema. Para fazer isso, edite o arquivo /etc/NetworkManager/NetworkManager.conf e adicione a opção dns na seção [main]:

[main]
dns=dnsmasq

Esta configuração permite que o Gerenciador de Rede use dnsmasq para processar consultas de DNS. dnsmasq é um servidor DNS e DHCP leve que fornece resolução de consultas de DNS locais e armazenamento em cache, melhorando a velocidade de resolução de DNS.

Após alterar as configurações, você precisa reiniciar o Gerenciador de Rede:

sudo systemctl restart NetworkManager

Gerenciar o DNS por meio do Gerenciador de Rede aumenta significativamente a flexibilidade e conveniência da configuração de rede. Isso permite que os usuários personalizem facilmente as configurações de DNS, otimizando o desempenho e a segurança da rede.

Solução de Problemas: Problemas Comuns e Suas Soluções

Problemas relacionados ao DNS podem se manifestar de várias formas, como problemas de conexão com a internet, dificuldades de acesso a sites e atrasos. Aqui, discutimos problemas comuns relacionados ao DNS que você pode encontrar no Linux e abordagens para resolvê-los.

Resolução Lenta de DNS

Se a resolução de DNS estiver lenta, o servidor DNS que você está usando pode ser a causa do atraso. Mudar para outro servidor DNS pode resolver o problema. Por exemplo, o Google Public DNS (8.8.8.8 e 8.8.4.4) e o Cloudflare DNS (1.1.1.1) são opções rápidas e confiáveis.

Falha na Resolução de DNS

Se a resolução de DNS falhar, primeiro verifique se seu sistema está apontando para os servidores DNS corretos. Você pode verificar isso usando o arquivo /etc/resolv.conf ou o comando systemd-resolve --status. Se os servidores DNS corretos estiverem configurados e o problema persistir, limpar o cache de DNS pode ajudar. Se você estiver usando systemd-resolved, pode limpar o cache com o seguinte comando:

sudo systemd-resolve --flush-caches

Incapacidade de Acessar Sites Específicos

Se você estiver tendo problemas para acessar sites específicos, pode haver problemas com os registros DNS desses sites, ou seu cache DNS local pode estar retendo informações desatualizadas. Limpar o cache DNS pode resolver o problema. Além disso, verifique se o arquivo /etc/hosts não adicionou manualmente entradas para esses sites.

Servidor DNS Não Responde

Se o servidor DNS que você está usando não estiver respondendo, primeiro verifique se o servidor DNS está inativo ou se há problemas com sua conexão de rede. Você pode testar se consegue alcançar o servidor DNS usando o comando ping. Se o servidor DNS não estiver respondendo, considere mudar para outro servidor DNS.

Ao tentar essas etapas gerais de solução de problemas, você deve ser capaz de resolver muitos problemas relacionados ao DNS. No entanto, se o problema persistir, pode ser necessária uma investigação mais aprofundada nas configurações ou configuração de rede. Em alguns casos, entrar em contato com seu Provedor de Serviços de Internet (ISP) ou administrador de rede pode ser o curso de ação apropriado.

Considerações de Segurança: Coisas a Ter em Mente ao Configurar o DNS

Ao configurar as configurações de DNS, é importante considerar as implicações de segurança. Configurações inadequadas de DNS podem aumentar a vulnerabilidade a ataques cibernéticos. Aqui, introduzimos algumas considerações de segurança chave a ter em mente ao configurar o DNS.

Confiabilidade e Segurança dos Servidores DNS

O servidor DNS que você escolher deve ser confiável e ter medidas de segurança implementadas. Se estiver usando um serviço DNS público, verifique os recursos de segurança fornecidos pelo provedor de serviços, como suporte a DNSSEC e bloqueio de sites maliciosos.

Mitigando Envenenamento de Cache DNS

O envenenamento de cache DNS é um ataque em que um invasor injeta informações falsas de DNS no cache, direcionando usuários para sites maliciosos, como sites de phishing. Usar servidores DNS que suportam DNSSEC (Extensões de Segurança do DNS) pode proteger contra tais ataques.

Protegendo a Configuração do Servidor DNS Local

Se você estiver executando seu próprio servidor DNS, mantenha as atualizações de software em dia, desabilite serviços desnecessários e assegure uma configuração segura. Além disso, configurar corretamente o firewall é crucial para evitar acessos não autorizados de fora.

Protegendo a Privacidade

Consultas de DNS podem revelar o histórico de uso da internet dos usuários. Para proteger a privacidade, considere usar servidores DNS que suportem consultas de DNS criptografadas, como DNS sobre HTTPS (DoH) ou DNS sobre TLS (DoT).

Conclusão

Entender como verificar e configurar servidores DNS no Linux e gerenciá-los adequadamente é crucial para manter a eficiência e segurança da rede. Este artigo abordou os conceitos básicos do DNS, como verificar e configurar servidores DNS, gerenciamento de DNS com systemd-resolved e Gerenciador de Rede, solução de problemas e considerações de segurança. Aplicar esse conhecimento permitirá uma configuração de DNS mais eficaz e segura em sistemas Linux.

Índice