Pesquisa de site

Instale e configure o servidor DNS no Ubuntu 16.04 LTS


Este tutorial abrangente descreve como instalar e configurar o servidor DNS na edição de servidor Ubuntu 16.04 LTS de 64 bits. Como você já deve saber, DNS é a forma abreviada de sistema de Dnome principal, que é usado para resolver nomes de host em endereços IP e vice-versa. Para os fins deste guia, usarei três sistemas, um para servidor DNS primário, outro para DNS secundário e o terceiro para cliente DNS. Todos os sistemas estão rodando com sistemas operacionais Ubuntu 16.04. Aqui está o IP e o nome do host de cada sistema.

Servidor DNS primário:

  • Sistema operacional: Servidor Ubuntu 16.04 LTS de 64 bits
  • Nome do host: pri.ostechnix.lan
  • Endereço IP: 192.168.1.200/24

Servidor DNS secundário:

  • Sistema operacional: servidor Ubuntu 16.04 LTS de 64 bits
  • Nome do host: sec.ostechnix.lan
  • Endereço IP: 192.168.1.201/24

Cliente DNS:

  • Sistema operacional: servidor Ubuntu 16.04 LTS de 64 bits
  • Nome do host: client.ostechnix.lan
  • Endereço IP: 192.168.1.202/24

Vamos começar.

Instale e configure o servidor DNS no Ubuntu 16.04

Dividirei este guia em três partes para simplificar e facilitar o entendimento.

  1. Instalar e configurar o servidor de nomes somente de cache,
  2. Instalar e configurar o servidor DNS primário ou servidor DNS mestre
  3. Instalar e configurar servidor DNS secundário ou servidor DNS escravo

Vamos fazer isso passo a passo.

Parte 1: Instalar e configurar o servidor de nomes somente de cache,

Certifique-se de que seu servidor Ubuntu esteja atualizado.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Instale o BIND9

Após atualizar o sistema, execute o seguinte comando para instalar os pacotes BIND9 que são usados para configurar o servidor DNS.

sudo apt-get install bind9 bind9utils bind9-doc

Instale o BIND9

Configurar o servidor de nomes de armazenamento em cache

O servidor de nomes de cache salva os resultados da consulta DNS localmente por um determinado período de tempo. Ele reduz o tráfego do servidor DNS salvando as consultas localmente, melhorando assim o desempenho e a eficiência do servidor DNS.

Para configurar o servidor de nomes de cache, edite o arquivo /etc/bind/named.conf.options:

sudo nano /etc/bind/named.conf.options

Remova o comentário das seguintes linhas. Em seguida, adicione os endereços IP do seu ISP ou servidor DNS público do Google.

forwarders {
 8.8.8.8;
 };

Salve e feche o arquivo.

E então reinicie o serviço bind9 para que as alterações tenham efeito.

sudo systemctl restart bind9

Instalamos com sucesso o servidor de nomes de cache.

Testando servidor de nomes de cache

Agora vamos verificar se está funcionando ou não usando o comando:

dig -x 127.0.0.1

Se você vir algo como abaixo, parabéns! O servidor de nomes de cache está funcionando!

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22769
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 604800 IN PTR localhost.

;; AUTHORITY SECTION:
127.in-addr.arpa. 604800 IN NS localhost.

;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1

;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 15:53:59 IST 2016
;; MSG SIZE rcvd: 132

Parte 2: Instalar e configurar o servidor DNS primário

Certifique-se de que seu servidor Ubuntu esteja atualizado usando os seguintes comandos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Instale o BIND9

Execute o seguinte comando para instalar pacotes BIND9.

sudo apt-get install bind9 bind9utils bind9-doc

Configurando o servidor DNS primário

Todos os arquivos de configuração estarão disponíveis no diretório /etc/bind/.

Vamos editar o arquivo de configuração do bind9

Edite '/etc/bind/named.conf' usando qualquer editor de sua preferência:

sudo nano /etc/bind/named.conf

Este arquivo deve conter as seguintes linhas. Se as linhas não estiverem lá, basta adicioná-las.

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Salve as alterações e saia do arquivo.

Precisamos definir os arquivos de zona direta e reversa.

Para fazer isso, edite o arquivo named.conf.local:

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

Defina os arquivos de avanço e reverso conforme mostrado abaixo.

zone "ostechnix.lan" {
        type master;
        file "/etc/bind/for.ostechnix.lan";
        allow-transfer { 192.168.1.201; };
        also-notify { 192.168.1.201; };
 };
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/rev.ostechnix.lan";
        allow-transfer { 192.168.1.201; };
        also-notify { 192.168.1.201; };
 };

Aqui, for.ostechnix.lan é o arquivo da zona de encaminhamento. rev.ostechnix.lan são os arquivos da zona reversa. E 192.168.1.202 é o endereço IP do servidor DNS secundário. Fazemos isso porque o DNS secundário começará a buscar as consultas se o servidor primário estiver inativo.

Salve e feche o arquivo.

Vamos agora criar os arquivos de zona que definimos na etapa anterior.

Primeiro, vamos criar um arquivo de zona de encaminhamento conforme mostrado abaixo.

sudo nano /etc/bind/for.ostechnix.lan

Adicione as seguintes linhas:

$TTL 86400
@   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          pri.ostechnix.lan.
@       IN  NS          sec.ostechnix.lan.
@       IN  A           192.168.1.200
@       IN  A           192.168.1.201
@       IN  A           192.168.1.202
pri     IN  A           192.168.1.200
sec     IN  A           192.168.1.201
client  IN  A           192.168.1.202

Da mesma forma, você pode adicionar outros registros de cliente conforme definido no arquivo acima.

Salve e feche o arquivo. Em seguida, crie a zona reversa.

sudo nano /etc/bind/rev.ostechnix.lan

Adicione as seguintes linhas:

$TTL 86400
@   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (
        2011071002  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          pri.ostechnix.lan.
@       IN  NS          sec.ostechnix.lan.
@       IN  PTR         ostechnix.lan.
pri     IN  A           192.168.1.200
sec     IN  A           192.168.1.201
client  IN  A           192.168.1.202
200     IN  PTR         pri.ostechnix.lan.
201     IN  PTR         sec.ostechnix.lan.
202     IN  PTR         client.ostechnix.lan.

Salve e feche o arquivo.

Defina as permissões e propriedade adequadas para o diretório bind9.

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Em seguida, precisamos verificar os arquivos de configuração DNS e os arquivos de zona.

Verifique os arquivos de configuração DNS com comandos:

sudo named-checkconf /etc/bind/named.conf
sudo named-checkconf /etc/bind/named.conf.local

Se os comandos acima não retornarem nada, significa que a configuração do DNS é válida.

A seguir, verifique os arquivos de zona usando comandos:

sudo named-checkzone ostechnix.lan /etc/bind/for.ostechnix.lan

Exemplo de resultado:

zone ostechnix.lan/IN: loaded serial 2011071001
OK

Verifique o arquivo da zona reversa:

sudo named-checkzone ostechnix.lan /etc/bind/rev.ostechnix.lan

Exemplo de resultado:

 zone ostechnix.lan/IN: loaded serial 2011071002
OK

Se você obteve os resultados mostrados acima, então está tudo bem.

Agora é hora de verificar se o servidor DNS primário está funcionando ou não.

Edite o arquivo /etc/network/interfaces:

sudo vi /etc/network/interfaces

Adicione o endereço IP do servidor DNS. No nosso caso, o IP do servidor DNS é o mesmo endereço IP desta máquina.

dns-nameservers 192.168.1.200

Salve e feche o arquivo.

Finalmente, reinicie o serviço Bind9.

sudo systemctl restart bind9

Testando servidor DNS primário

Verifique o servidor DNS usando os comandos dig ou nslookup.

dig pri.ostechnix.lan

Exemplo de resultado:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> pri.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51989
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pri.ostechnix.lan. IN A

;; ANSWER SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200

;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.

;; ADDITIONAL SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201

;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 16:56:13 IST 2016
;; MSG SIZE rcvd: 110

Ou use o comando nslookup conforme mostrado abaixo:

nslookup ostechnix.lan

Exemplo de resultado:

Server: 192.168.1.200
Address: 192.168.1.200#53

Name: ostechnix.lan
Address: 192.168.1.200
Name: ostechnix.lan
Address: 192.168.1.201
Name: ostechnix.lan
Address: 192.168.1.202

Se você obteve resultados semelhantes aos acima, o servidor DNS primário está ativo e funcionando perfeitamente!

Parte 2: Instalar e configurar o servidor DNS secundário

Você precisa de um sistema separado para configurar este servidor. Precisamos de um servidor DNS secundário, pois em caso de qualquer problema com o DNS primário, o servidor DNS secundário ainda resolverá as dúvidas.

Primeiro, atualize o servidor usando comandos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Instale o BIND9

Instale os pacotes bind9 necessários:

sudo apt-get install bind9 bind9utils bind9-doc

Configurar servidor DNS secundário

Edite o arquivo de configuração do bind9:

sudo nano /etc/bind/named.conf

Adicione as seguintes linhas se elas não estiverem lá.

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Salve e feche o arquivo.

A seguir, precisamos definir os arquivos de zona.

Para fazer isso, edite o arquivo named.conf.local:

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

Adicione ou modifique as seguintes linhas. Substitua o endereço IP e os arquivos de zona pelos seus próprios valores.

zone "ostechnix.lan" {
        type slave;
        file "/var/cache/bind/for.ostechnix.lan";
        masters { 192.168.5.200; };
 };
zone "1.168.192.in-addr.arpa" {
        type slave;
        file "/var/cache/bind/rev.ostechnix.lan";
        masters { 192.168.5.200; };
 };

Aqui,  192.168.1.200 é o endereço IP do servidor DNS primário.

Observe que o caminho dos arquivos de zona deve ser o diretório /var/cache/bind/. Isso ocorre porque o AppArmor só permite acesso de gravação dentro dele por padrão.

Em seguida, defina a permissão e propriedade adequadas para o diretório de ligação.

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Em seguida, edite o arquivo de configuração de rede e adicione o endereço IP do servidor DNS primário e secundário.

sudo nano /etc/network/interfaces
[...]
dns-nameservers 192.168.1.200
dns-nameservers 192.168.1.201

Salve e feche o arquivo.

Finalmente, reinicie o sistema para que todas as alterações tenham efeito.

Testando servidor DNS secundário

Como já mencionei, usamos os comandos “dig” ou “nslookup” para testar o servidor DNS.

Vamos verificar o servidor DNS secundário com o comando:

dig sec.ostechnix.lan

Exemplo de resultado:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> sec.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49308
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sec.ostechnix.lan. IN A

;; ANSWER SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201

;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.

;; ADDITIONAL SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200

;; Query time: 2 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 18:19:47 IST 2016
;; MSG SIZE rcvd: 110

Da mesma forma, você pode verificar o servidor DNS primário com o comando:

dig pri.ostechnix.lan

Ou apenas use o comando nslookup conforme mostrado abaixo.

nslookup ostechnix.lan

Observação: observe que os arquivos de zona serão transferidos somente quando o número de série no servidor DNS primário for maior que o número de série do servidor DNS secundário.

Configurando o cliente DNS

Edite o arquivo de configuração de rede no sistema cliente:

sudo nano /etc/network/interfaces

Adicione os endereços IP do servidor de nomes.

[...]
nameserver 192.168.1.200
nameserver 192.168.1.201

Salve e feche o arquivo. Em seguida, reinicie o sistema para que as alterações tenham efeito.

Teste os servidores DNS usando qualquer um dos seguintes comandos:

dig pri.ostechnix.lan
dig sec.ostechnix.lan
dig client.ostechnix.lan
nslookup ostechnix.local

Nesta fase, você terá servidores DNS primários e secundários funcionando.

É tudo por agora. Se você achar este guia útil, compartilhe-o em suas redes sociais e apoie a OSTechNix.

Saúde!

Artigos relacionados