Como Criar um Servidor DNS com Bind.

Forest
 Instalando DNS recursivo e autoritativo.

  • Overview
    • Inventário.
Overview

O  Servidor DNS tem a função de resolver nomes. Como assim? Toda vez que você acessa a internet, como por exemplo o Viva o Linux , você não está acessando www.vivaolinux.com.br, está acessando um endereço IP formado por 4 octetos (162.144.34.172). Imagine você ter que gravar números ao invés de nomes toda vez que você quiser acessar a internet, seria complicado.

Segue abaixo uma ilustração de um DNS local.


Imagem 1


A imagem acima ilustra um DNS local recebendo uma requisição de um host da rede interna.O DNS tem autoridade sobre os dominios alfredobacker e vivaolinux.com.br bem como sobre a rede 172.16.0.0.

O DNS também serve para a economia de recursos e para o gerenciamento de domínios locais.Uma vez que seu servidor local armazena em cache de todos os seus acessos, você não precisará recorrer a um DNS externo para acessar um website. O gerenciamento de Dominios é importante para a intranet, uma vez que você pode separar seus websites por nome.Ao criar um dominio como alfredobacker, você tem autoridade sobre ele e pode criar um endereçamento local de e-mails ou o apontamento de vhosts para hosts disseminados pela sua intranet.


Inventário:
  • VirtualBox
  • Hardware:
    •  20 Gb
    •  256MB
    •  1 CPU
  • DNS Interno
    • IP: 172.16.0.4/24
  • Host Intranet
    • IP: 172.16.0.4/24
  • dominios: 
    • alfredobacker
    • vivaolinux.com.br

repositórios do arquivo /etc/apt/source.list:
deb http://ftp.br.debian.org/debian/ stretch main
deb-src http://ftp.br.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib 
deb-src http://security.debian.org/debian-security stretch/updates main contrib
deb http://ftp.br.debian.org/debian/ stretch-updates main contrib
deb-src http://ftp.br.debian.org/debian/ stretch-updates main contrib




Configuração do Bind:

$sudo vim /etc/resolv.conf
~
search vivaolinux.com.br
search alfredobacker
nameserver 172.16.0.4
~
Para organização da implementação, primeiramente iremos editar o arquivo:
 /etc/hosts e inserir a entrada: 172.16.0.4
$sudo vim  /etc/hosts
~
127.0.0.1 localhost 127.0.1.1 hostname 172.16.0.4 vivaolinux.com.br hostmaster.vivaolinux.com.br DNS1.vivaolinux.com.br
~
Feito isso, precisamos editar o arquivo /etc/bind/named.conf.options. Iremos inserir e substituir as entradas:

$ vim /etc/bind/named.conf.options
 ~
directory "/etc/bind"; version "não disponível";
~
  No mesmo arquivo coloque as entradas abaixo:
~
 forwarders { 172.16.0.1; 8.8.8.8; };
 listen-on { 127.0.0.1; 172.16.0.4; };
 allow-query { 127.0.0.0/8; 172.16.0.0/24; };
~

Chaves(ML):
  •  listen-on: São os ips onde o DNS vai responder na porta 53.
  •  allow-query : São as redes que serão autorizadas a obter dados do DNS.
  •  listen-on-v6: São os ranges de IPV6


$cat named.conf.options
~
options {
directory "/etc/bind";
 version "não disponível";
 forwarders { 172.16.0.1; 8.8.8.8; };
 dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
 listen-on{ 127.0.0.1; 172.16.0.4; };
 allow-query { 127.0.0.1/8; 172.16.0.0/24; }; };
~

arquivo ./named.conf.local
root# cat named.conf.local
~
//
////// VivaAoLinux.com.br Zone //////
//
zone "vivaolinux.com.br" IN {
type master;
file "db.vivaolinux.com.br";
allow-transfer {none;};
};
//
////// AlfredoBacker Zone //////
//
zone "alfredobacker" IN {
type master;
file "db.alfredobacker";
allow-transfer {none;};
};

//
////// ZONA 172.16.0.0/24
//
zone "0.16.172.in-addr.arpa" IN {
type master;
file "rev.0.16.172";
allow-transfer {none;};
};

~

Criando Zonas
Iremos criar o Arquivo: /etc/bind/db.vivaolinux.com.br
root#vim db.vivaolinux.com.br

~
$TTL 3600
@ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
 2008111800
 900
 400
 3600000
 3600
)
@ IN NS vivaolinux.com.br.
@        IN      A        172.16.0.2
 @       IN      MX    10       mail.vivaolinux.com.br.
 mail                IN       A        172.16.0.3
 WWW           IN       CNAME         vivaolinux.com.br.
~
root#vim db.alfredobacker
~
$TTL 3600
@    IN     SOA   alfredobacker.   hostmaster.alfredobacker. (
            2008111801
            900
            400
            3600000
            3600
            )
@      IN     NS     alfredobacker.
@      IN     A      172.16.0.10
@      IN     MX 10  mail.alfredobacker.
mail   IN     A      172.16.0.11
www    IN     CNAME  alfredobacker.
~




As chaves de registro:

 A chave de registro SOA indica o inicio de uma zona de autoridade: 2008111800 será o número serial, ou seja, o slave verá que o servidor master foi modificado através desse número, caso você modifique algo no seu servidor DNS, TEM QUE MODIFICAR O SERIAL TAMBÉM, colocando 2008111801 e assim por diante.
A segunda entrada 900 será o update, ou seja, de quanto em quanto tempo o slave verificará se teve alguma modificação em algum arquivo de zona.
A terceira entrada 400 será o retry, ou seja: caso o servidor master pare de funcionar por algum motivo, de quanto em quanto tempo o slave verificará se o master voltou.
A quarta entrada, 3600000 será o expire, ou seja, o servidor master caiu, após quanto tempo o servidor slave irá parar de resolver nomes também.
A quarta entrada 3600 será o negative cachê, é o tempo de cache do servidor.

A chave de registro NS (NameServer) indica o nome da autoridade do domínio. A chave A indica o endereço de host. A chave MX 10 indica o servidor de email para o domínio, o número 10 é a prioridade desse servidor. A chave CNAME é o nome canônico.


Criando Zonas Reversas:



Iremos criar o Arquivo: /etc/bind/db.vivaolinux.com.br
root# vim db.vivaolinux.com.br
~
 $TTL 3600 @ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
 2008111800
 900
 400
 3600000
 3600
 )
 @ IN NS vivaolinux.com.br.
 @ IN A 172.16.0.2
 @ IN MX 10 mail.vivaolinux.com.br.
 mail IN A 172.16.0.3
 www IN CNAME vivaolinux.com.br.
~

Criando Zonas Reversas.

Crie o arquivo: /etc/bind/rev.vivaolinux.com.br
root#vim /etc/bind/rev.vivaolinux.com.br
~
$TTL 3600
 @ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
 2008111800
 900
 400
 3600000
 3600
 )
@ IN NS vivaolinux.com.br.
2 IN PTR vivaolinux.com.br.
@ IN MX 10 mail.vivaolinux.com.br.
3 IN PTR mail.vivaolinux.com.br
;;
;;;;;; AlfredoBacker ;;;;;;
;;
@      IN    NS      alfredobacker.
10     IN    PTR     alfredobacker.
@      IN    MX 10   mail.alfredobacker.
11     IN    PTR     mail.alfredobacker.

~

 A chave de registro PTR (pointer) indica um ponteiro para outro lado do nome do domínio  (reverso).


Configurando o servidor DNS em um host Local.



Edite o arquivo: /etc/resolv.conf
vim /etc/resolv.conf
~
nameserver 172.16.0.4
~

Teste o DNS com o Comando Host:


root # host 172.16.0.3 && host 172.16.0.4
stdout:
~
3.0.16.172.in-addr.arpa domain name pointer mail.vivaolinux.com.br.0.16.172.in-addr.arpa.
4.0.16.172.in-addr.arpa domain name pointer vivaolinux.com.br.
~

root # host 172.16.0.10 && host 172.16.0.11
~
10.0.16.172.in-addr.arpa domain name pointer alfredobacker.
11.0.16.172.in-addr.arpa domain name pointer mail.alfredobacker.
~


root# host vivaolinux.com.br && host mail.vivaolinux.com.br
~
vivaolinux.com.br has address 172.16.0.2
vivaolinux.com.br mail is handled by 10 mail.vivaolinux.com.br.
mail.vivaolinux.com.br has address 172.16.0.3
~

root # host alfredobacker && host mail.alfredobacker
~
alfredobacker has address 172.16.0.10
alfredobacker mail is handled by 10 mail.alfredobacker.
mail.alfredobacker has address 172.16.0.11
~



Feitos estes testes, seu DNS local está habilitado a funcionar.



Bibliografia:
[1]: Tutorial, viva ao linux.



Comments