Como configurar o servidor DNS no Debian

Como configurar o servidor DNS no Debian

O que é DNS?

DNS ou sistema de nome de domínio é o sistema que traduz o nome de um domínio em seu endereço IP correspondente. Por exemplo, quando você digita www.exemplo.com em seu navegador, ele mapeia para um endereço IP de um servidor da web específico na Internet. Isso facilita para as pessoas lembrar servidores, aplicativos ou outros dispositivos conectados à Internet sem precisar memorizar seus endereços IP.

DNS é um sistema de banco de dados distribuído hierárquico. Possui uma estrutura em forma de árvore com nós que são dispostos em camadas chamadas domínios. Cada domínio aponta para o nó de algum nível inferior a si mesmo. No DNS, esses domínios são definidos como subdomínios e cada um reside em seu próprio servidor DNS, DNS mestre ou DNS primário, que contém os registros para todos os endereços IP e nomes de host em sua zona de domínio.

Pode haver vários servidores DNS secundários que contêm uma cópia atualizada das informações contidas em seus servidores mestre DNS correspondentes. Além de resolver consultas usando esses dados espelhados, os servidores DNS secundários também fornecem tolerância a falhas, caso o mestre primário seja reduzido, respondendo a dúvidas enquanto aguardam as respostas do mestre primário.

As consultas são processadas pelos servidores DNS recursivos com base nas informações em seu cache combinadas com os detalhes do servidor de nomes recursivos especificados em /etc/resolv.arquivo conf. O sistema de nomes de domínio é um elemento crítico da arquitetura da Internet e é essencial para os computadores de rede juntos no que chamamos hoje de "internet".

Os parâmetros de configuração do DNS podem ser editados usando o “escavação”Ferramenta ou edição dos arquivos da zona diretamente. A edição de arquivos da zona não é aconselhável, pois um erro pode resultar no inacessível o site, embora isso seja uma ocorrência rara. Se você não tiver certeza do que você está fazendo, use o Dig sempre que possível. Alguns pacotes de domínio vinculados ou Berkeley na Internet vêm com “dnsutils" e "hospedar”, Que são usados ​​para consultar servidores DNS e imprimir os resultados. Há também o utilitário nslookup disponível na maioria dos sistemas Unix que podem ser usados ​​para fins semelhantes. No entanto, "Dig" é geralmente mais confiável do que essas duas ferramentas.

Como funciona o DNS?

DNS funciona como um sistema hierárquico, começando na raiz do domínio. Por exemplo, se você digitar www.exemplo.com No seu navegador, ele pede ao seu servidor DNS local para essas informações. Quando não tem, pois não é autoritário para esse domínio, encaminha a consulta a um de seus servidores DNS recursivos a montante. Esses servidores verificarão seu cache primeiro antes de entrar em contato com todos os servidores de nomes autoritários diretamente responsáveis ​​pelo domínio "exemplo" até descobrir qual DNS tem esses dados e o enviará de volta ao computador cliente com um endereço IP para esse domínio.

Como você pode ver, cada domínio ou subdomínio tem seu próprio servidor de nome autoritário e é responsável por resolver consultas apenas para esse subdomínio. Portanto, um servidor DNS deve ter todas as informações para responder a qualquer consulta sobre um domínio específico. Então se "exemplo.com”Não é o domínio principal dos servidores DNS local, então não será capaz de resolver consultas para www.exemplo.com sem encaminhá -lo primeiro.

Observação: Sempre que possível, configure diferentes servidores de nomes para cada subdomínio, pois cada um requer procedimentos administrativos e de manutenção separados. De fato, foi assim que o DNS foi projetado no começo, quando os protocolos TCP/IP foram lançados em 1983 antes da invenção do sistema de nomes de domínio. Isso foi feito mais tarde após a criação de serviços de registro internacional em 1992. Os subdomínios foram introduzidos como uma extensão do protocolo DNS e destinou -se apenas a fins administrativos.

Sempre que um servidor DNS recebe uma consulta de um cliente, ele verifica o cache primeiro para ver se todos os registros necessários estão presentes nele. Se não houver registro encontrado ou não forem frescos o suficiente, ele fará as seguintes consultas recursivas:

Se for uma consulta na Internet (in), resolve nomes de host que começam na raiz do domínio e trabalhando para baixo através de cada domínio pai até atingir os servidores autorizados para essa zona. Isso é chamado “Começando no topo“, E geralmente é feito primeiro desde os servidores de nome responsáveis ​​pelos TLDs (.com, .rede, etc.) têm velocidades de conexão mais rápidas com maior largura de banda do que aquelas para domínios de segundo nível, e.g., ““exemplo”. Ao fazer isso, seu servidor DNS local leva em consideração se pode ou não confiar na resposta de seus servidores DNS upstream. Se você não tiver acesso a /etc /hosts ou /etc /resolv.Os servidores confiados e DNS usados ​​pelo seu ISP estão em cache suas respostas, então as chances são a maior parte do seu tráfego de rede está sendo registrado. Assim, isso pode representar uma ameaça à segurança e, se não, pedirá servidores recursivos diretamente para esses dados. Isso é chamado “Começando no fundo”Como os servidores de nomes responsáveis ​​pelos domínios de segundo nível têm velocidades de conexão mais lentas com largura de banda menor do que aqueles para domínios de nível superior.

Todo esse processo é repetido iterativamente até que eles:

  1. Um servidor de nomes não autoritários responde a uma consulta, dizendo que não sabe as informações solicitadas.
  2. Um servidor de nomes encontra o que acha que é uma resposta autorizada para a consulta e a envia de volta ao computador cliente.
  3. O número de iterações pré -configurado no cache do nome do resolvedor expira.

Este tutorial o levará a como configurar seu próprio servidor DNS interno no Debian. Usamos o software Bind Name Server (Bind9) para fazê -lo.

O que é bind9?

Bind (domínio de nome da internet de Berkeley) é uma implementação do Protocolo DNS. Em Vincular 9, Vários vários aprimoramentos importantes foram feitos, incluindo suporte IPv6, configuração e controle muito mais flexíveis, desempenho aprimorado em cache, Suporte EDNS0 Para respostas maiores de UDP e melhor gerenciamento sobre endereços IP atribuídos dinamicamente.

VINCULAR é o software de servidor de nomes mais amplamente usado na internet. Ele suporta vários protocolos de serviço de nomes de domínio diferentes, incluindo Bind4 (o domínio original da Internet de Berkeley, versão 4), Bind8 (o sucessor histórico de Bind4) e serviços DNS para IPv6 Através de duas implementações separadas: uma baseada no daemon e outro chamado lwres (Resolver leve).

Vincular 9.5 é a versão estável atual do bind e está disponível para download em forma de origem e binária do Consórcio de software na Internet.

Pré -requisitos

Antes de começarmos com o processo de instalação do servidor DNS no Debian, você deve se perguntar: “Eu realmente preciso de um servidor DNS?

Este artigo se concentra apenas no IPv4; portanto, se você estiver interessado em usar DNS para IPv6, Mais trabalho tem que ser feito. Este guia não o ajudará mais em tópicos, como adicionar registros AAAA manualmente, etc.

É necessária uma nova instalação do servidor Debian para testar as etapas deste guia. Alguns dos comandos usados ​​aqui podem ser diferentes para o seu caso, e essas diferenças serão apontadas quando apropriado.

Este guia pressupõe que você tenha um trabalho Rede IPv4 e conhecimento para configurar adequadamente endereços IP estáticos em computadores clientes.

A Usuário sudo e um firewall já deve ser configurado em seu sistema.

Começando

Atualizando seu sistema

O processo de instalação é bastante direto, mas vamos ver em detalhes. Primeiro, você precisa garantir que seu sistema tenha todos os pacotes necessários instalados e atualizados, usando o seguinte comando:

Atualização sudo apt-get && sudo apt-get upgrade -y

A bandeira -y responderá automaticamente sim a todas as confirmações que podem ser solicitadas.

O comando APT-GET UPDATE atualizará as listas de pacotes do servidor. Ao usar o comando APT-GET UPGRADE, todos os pacotes instalados nele serão atualizados.

Isso levará algum tempo, dependendo da velocidade de conexão da sua rede e da quantidade de atualizações a serem instaladas.

Saída de amostra:

Instalando o Bind9

Agora que seu sistema está atualizado, você pode prosseguir com a instalação de um Servidor DNS - Bind. Isso será feito instalando vários novos pacotes:

sudo apt install bind9 bind9utils bind9-doc

O comando acima instalará Bind9 e os dois pacotes auxiliares que contêm os arquivos necessários para o funcionamento adequado do servidor DNS.

O Bind9 é o software do servidor DNS.

Os bind9utils são utilitários para gerenciar Vincular configuração e são nomeados o comando usado para controlar VINCULAR Da linha de comando.

Observação: bind9-Doc é um pacote de documentação para Software de ligação.

Saída de amostra:

Instalando o servidor DNS

Após a conclusão da instalação, você pode verificar se todos os pacotes foram instalados com sucesso executando o seguinte comando:

nomeado -v

O comando acima mostrará a versão instalada do BIND e suas dependências.

Saída de amostra:

O ligação começa automaticamente quando você o instala. Você verifica seu status com o comando SystemCTL, como segue:

SUDO SYSTEMCTL STATUS BIND9

O comando acima fornecerá uma visão mais detalhada das funções de ligação no seu servidor, como tempo ativo, número de zonas, etc.

Você receberá algo semelhante à seguinte saída:

Saída de amostra:


Se você quiser começar, parar ou reiniciar Bind, basta executar os comandos abaixo:

SUDO Service Bind9 Start
SUDO Service Bind9 Stop
SUDO Service Bind9 Reiniciar

O servidor de ligação será executado como usuário e grupo de ligação por padrão. Isso o torna razoavelmente seguro, pois quaisquer alterações nos arquivos de zona só são permitidas para este usuário. O servidor de ligação ouve por padrão na porta 53 para consultas DNS. Você pode alterar esta porta no nomeado.arquivo conf se você gostar. Execute o seguinte comando para ver em qual porta seu servidor de ligação está ouvindo:

sudo netstat -lnptu | Grep nomeado

Saída de amostra:

O comando acima mostra que o Daemon nomeado está atualmente iniciado e ouvindo na porta 53 UDP. Use essas informações para verificar se você está usando o número da porta correta.

Se o seu servidor não estiver usando a porta 53, você pode corrigir isso editando /etc/bind/nomeado.conf.local e alterando o número da porta para o que você quiser. Você também pode alterar o nome do arquivo de log do servidor editando /etc/bind/nomeado.conf.Zones padrão e adicionar declarações de registro na diretiva de opções.

Configurando o bind9

Agora que você tem Bind9 instalado No seu servidor, é hora de começar a configurá -lo.

O diretório de configuração para VINCULAR está localizado em /etc/bind. Existem alguns arquivos importantes neste diretório:

O arquivo chamado 'nomeado.conf'é o principal arquivo de configuração, que tem muitos comentários para esclarecer cada seção.

O próximo arquivo de configuração que editaremos está localizado em /etc/bind/nomeado.conf.local. Este arquivo contém todas as informações da sua rede sobre o servidor e as zonas que você deseja resolver localmente (da NameServers).

O nomeado.conf.Zones padrão está localizado em /etc/bind/nomeado.conf.Zones padrão. Este arquivo contém informações do servidor para zonas usadas pelo BIND quando não é explicitamente instruído a usar uma zona diferente. Em outras palavras, zonas que estão ativadas.

Então, vamos em frente e começar com alguma configuração básica.

Saída de amostra:

Por padrão, Bind está configurado para servir apenas a localhost. Isso significa que qualquer solicitação que venha de fora do seu servidor será rejeitada por si mesma, a menos que você o tenha corretamente configurado.

Se você estava tentando acessar um site hospedado, por exemplo, o “154.54.55.Endereço IP de 56 ”, o que aconteceria? A resposta é simples: todas as solicitações ficariam sem resposta porque nenhuma configuração foi especificada para o “154.54.55.Endereço IP de 56 ”em Bind9, e o Daemon“ nomeado ”se recusou a atender a quaisquer solicitações DNS de fora de sua interface de rede.

Primeiro, definiremos o servidor DNS para ouvir todos os endereços IP para enviar solicitações para o servidor DNS de vários lugares: do servidor, de uma rede diferente ou quando você estiver usando a Internet.

Vamos fazer isso editando o nome.conf.Arquivo de configuração de opções:

cd /etc /bind
Sudo Nano nomeado.conf.opções
Vamos substituir Listen-On 127.0.0.1;;
por
Ouça-se qualquer;;
Ouça-se-on-V6 qualquer;

Salve e feche o arquivo quando terminar. Em seguida, reinicie o daemon bind9 com o comando abaixo:

SUDO Service Bind9 Reiniciar

Agora, ativamos o Bind9 a ouvir em todas as interfaces.

Saída de amostra:

Criando zonas de pesquisa avançada (domínio -> IP)

As zonas de pesquisa avançadas são o tipo mais comum de arquivos de zona. Eles mapeiam um nome de domínio para um endereço IP e são usados ​​na resolução de nomes de domínio para endereços IP para email, páginas da web, etc. O próximo passo é criar um arquivo de zona de pesquisa avançado.

Vamos editar o “/etc/bind/nomeado.conf.local”Arquivo para declarar uma zona avançada. Para o único objetivo deste tutorial, declararemos um domínio chamado “Linuxhint.com”E aponte para o endereço IP público do servidor, usado explicitamente para hospedar sites de volume externa no Linuxhint.domínio com.

Observação: Um endereço IP acessível à Internet válido deve ser definido no seu servidor se você planeja resolver domínios externos de dentro da sua rede.

Agora, vamos editar o “/etc/bind/nomeado.conf.local”Arquivo para declarar uma zona de pesquisa avançada:

Sudo Nano nomeado.conf.local

Adicione o seguinte ao final do arquivo:

Zona "Linuxhint.com "
Mestre do tipo;
arquivo "/etc/bind/db.Linuxhint.com ";
// allow-transfer xxx.xxx.xxx.xxx;; // servidor DNS secundário do hoster
;

Nesse contexto:

Tipo "mestre”. Este é um arquivo de zona de domínio principal. O parâmetro de tipo pode ser definido como “escravo”Se você estiver hospedando uma zona de avanço ou reversa apenas com autoridade e não deseja permitir atualizações dinâmicas.

O "/etc/bind/dB.Domínio.com”É um arquivo que contém os registros para o domínio“Linuxhint.com”Com um caminho completo.

Allow-transfer xxx.xxx.xxx.xxx;. É necessário permitir a transferência de zona para o servidor DNS secundário do hoster, porque se o seu provedor de hospedagem não permitir que você o faça, você não poderá atualizá -lo on -line com o comando “Recarrega do RNDC”No host local. xxx.xxx.xxx.xxx; Endereço IP do servidor DNS secundário (servidores de nomes) que é hospedado pelo seu provedor de hospedagem.

Salve e feche o arquivo quando terminar.

Saída de amostra:


Agora, vamos criar um arquivo para cada zona declarada acima:

sudo nano db.Linuxhint.com

Preencha o arquivo com o seguinte:

;
; Ligue o arquivo de dados para interface de loopback local
;
$ TTL 604800
@ Na SOA NS1.Linuxhint.local. raiz.Linuxhint.local. (
2; Serial
604800; Atualizar
86400; Tente novamente
2419200; Expirar
604800); Cache negativo ttl
;
; Comentário abaixo de três linhas
;@ No ns localhost.
;@ Em um 127.0.0.1
;@ Em aaaa :: 1
; Nome Server Information
@ No ns ns1.Linuxhint.local.
; Endereço IP do servidor de nomes
NS1 em um 192.168.0.10
; Trocador de correio
Linuxhint.local. Em MX 10 Mail.Linuxhint.local.
; A - Record HostName para Endereço IP
www em um 192.168.0.100
Mail em um 192.168.0.150
; CNAME RECORD
FTP em CNAME www.Linuxhint.local.

Neste arquivo, substitua os valores linuxhint pelo seu nome de domínio, seguido de um ponto (.) Isso é necessário, e não é um erro.

Substitua “192.168.0 ”com seu endereço IP público, seguido de um ponto (.) Isso é necessário para tornar o servidor acessível da Internet.

Lembre -se de salvar e fechar o arquivo quando terminar.

Criando zonas de pesquisa reversa (domínio IP ->)

As zonas de pesquisa reversa são usadas para mapear um endereço IP em um nome de domínio e geralmente são necessárias para enviar e-mail. O próximo passo é criar um arquivo de zona reversa.

O nome da zona reversa consiste no ID da rede (revertido) seguido de “.In-Addr.ARPA”.

Por exemplo:

Se o servidor tiver um endereço IP “20.30.40.50“, Seu ID de rede será“20.30.40“, E o nome da zona reversa será“40.30.20.In-Addr.ARPA““.

Se o servidor tiver um endereço IP “191.169.10.50“, Seu ID de rede será“191.169.10“, E o nome da zona reversa será“10.169.191.In-Addr.ARPA““.

Agora, vamos editar o “/etc/bind/nomeado.conf.local”Arquivo para declarar uma zona reversa:

sudo nano/etc/bind/nomeado.conf.local

Em seguida, adicione o seguinte ao arquivo:

Zona "40.30.20.In-Addr.arpa "
Mestre do tipo;
notificar não;
arquivo "/etc/bind/db.10 ";
;

Em seguida, criaremos um arquivo para a zona declarada acima:

sudo nano db.10

Em seguida, preencha o arquivo com o seguinte:

;
; Vincular o arquivo de dados reverso para interface de loopback local
;
$ TTL 604800
@ Em SOA Linuxhint.local. raiz.Linuxhint.local. (
2; Serial
604800; Atualizar
86400; Tente novamente
2419200; Expirar
604800); Cache negativo ttl
;
;@ No ns localhost.
; 1.0.0 em PTR localhost.
; Nome Server Information
@ No ns ns1.Linuxhint.local.
; Pesquisa reversa para servidor de nomes
10 em ptr ns1.Linuxhint.local.
; PTR Record Endereço IP para HostName
100 em PTR www.Linuxhint.local.
150 em PTR Mail.Linuxhint.local.
# Fim do arquivo

Verificação da sintaxe da configuração de ligação

Agora, verificaremos a sintaxe da configuração em cada arquivo quanto a erros. Para fazer isso, teremos uma consulta nomeada com o seguinte comando:

sudo chamado checkconf

Se não houver erros, este comando retornará ao shell em branco:

Saída de amostra:

Conclusão

DNS é um dos serviços mais importantes em um servidor. Todo mundo usa. Todo mundo precisa e, no final, você não quer que suas máquinas se percaem na rede porque elas não conseguem se encontrar. Este artigo fornece um guia sobre a configuração do seu servidor DNS interno no Debian usando o software Bind Name Server (Bind9). Para mais informações, verifique os outros artigos encontrados no Linuxhint.com.