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.
- Instalar e configurar o servidor de nomes somente de cache,
- Instalar e configurar o servidor DNS primário ou servidor DNS mestre
- 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
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!