sexta-feira, 6 de janeiro de 2012

DNS com Debian 6

Vamos lá mais uma vez a peleia.

Tive que montar um servidor interno de DNS para agilizar a resposta na resolução de nomes da rede interna, bem como tbm diminuir o trafego dessa solicitação a rede externa.

Pois bem. Recorri ao Google para me auxiliar e encontrei de tudo. O q me salvou em partes foi o Youtube. Aquela porra tem vídeo q até ensina a limpar a bunda. Vai se F!@($&!@(*. Encontrei inclusive vídeos de como configurar o DNS no Debian 6, porém seguindo-os a risca, nada de funcionar corretamente. Pois bem a solução foi assistir a uns 4 vídeos, ler um pouco sobre o assunto e mais uns 3 artigos e consegui fazer uma compilação de como configurar o DNS no Debian 6, que descrevo abaixo.

Instalação do serviço DNS que é o Bind9
apt-get install bind9
ou
aptitude install bind9



Configuração do Bind

Edite o aquivo named.conf.local que está no diretório /etc/bind pelos comandos:
cd /etc/bind/
vim named.conf.local

Acrescente as linha abaixo ao final do arquivo:

zone "seudominio.br" {
    type master;
    file "/etc/bind/db.seudominio";
};
zone "0.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/rev.seudominio";
};

Salve o arquivo e saia do editor.

OBS.:
seudominio.br é o nome que você irá dar ao domínio de sua rede Linux que o seu servidor irá responder.
0.168.192 é o IP reverso de sua rede interna. No meu exemplo a rede é 192.168.0.X, logo utilizei 0.168.192. Se usar na sua rede o IP 10.0.0.X deverá colocar 0.0.10. E por ai a fora.

Vamos agora testar o arquivo named.conf.local. Digite no shell o seguinte:
named-checkconf

O retorno da verificação deve ser uma nova linha do prompt do shell. Se houver algum problema será relatado.

Vamos criar agora o arquivo db.seudominio no diretório /etc/bind através do comando:
vim db.seudominio

Acrescente o conteúdo abaixo a esse arquivo:

;
; BIND data file for zone seudominio.br
;
$TTL    3D
@    IN       SOA    nomedns.seudominio.br. root.seudominio.br. (
                     2013050601         ; Serial
                     8H                 ; Refresh
                     2H                 ; Retry
                     4W                 ; Expire
                     1D )               ; Negative Cache TTL
;
              NS     ns                 ; Inet address of name server
seudominio.br A      192.168.0.1
server        A      192.168.0.1
www           A      192.168.0.1

Salve o arquivo e saia do editor

OBS.:
Lembre-se sempre de deixar uma linha embranco no fim do arquivo.
nomedns é o nome que você irá dar ao seu servidor DNS. Por exemplo: Zeus, Zion, Master, etc
seudominio é o nome que usou anteriormente para designar seu dominio
192.168.0.1 é o IP que será atribuido ao servidor DNS. No exemplo acima o servidor DNS tbm será o servidor www de páginas internas na rede intranet. Caso não vá utilizar servidor www, basta suprimir essa linha.

Agora vamos testar se este arquivo db.seudomio está OK. Digite o seguinte comando:
named-checkzone seudominio.br /etc/bind/db.seudominio

O retorno deve ser o seguinte:
zone seudominio.br/IN: loaded serial 2013050601
OK


Se houver algum erro será listado antes do OK.

Vamos agora configurar o reverso do dns, criando o arquivo rev.seudominio na pasta /etc/bind pelo comando:
vim rev.seudominio

Acrescente as linhas abaixo ao arquivo:

;
; BIND reverse data file for loopback rev.seudominio
;
$TTL    3D
@    IN       SOA    nomedns.seudominio.br. root.seudominio.br. (
                     2013050601         ; Serial
                     8H                 ; Refresh
                     2H                 ; Retry
                     4W                 ; Expire
                     1D )               ; Negative Cache TTL
;
              NS     nomedns.seudominio.br. ; Nameserver address
1             PTR    nomedns.seudominio.br.
1             PTR    server.seudominio.br.

Salve o arquivo e saia do editor.


OBS.:
nomedns é o nome que você escolheu para o seu servidor DNS. Deve ser sempre o mesmo.
seudominio é o nome que usou anteriormente para designar seu dominio. Usar sempre o mesmo.
1 na última linha é o número do micro na sua rede IP. No meu caso o servidor DNS é o IP 192.168.0.1. O número 192.168.0 designa a rede e o número 1 o micro. Logo se usar por exemplo para o seu servidor DNS 10.0.0.54, deverá colocar no lugar do número 1 o número 54.

Vamos agora testar se está tudo ok com o arquivo reverso. Digite o comando:
named-checkzone 0.168.192.in-addr.arpa /etc/bind/rev.seudominio

O retorno deverá ser o seguinte:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2013050601
OK


Se houver algum erro será listado antes do OK.

Edite agora o arquivo resolv.conf que está no diretório /etc, pelo comando:
vim /etc/resolv.conf

Altere as configurações dele conforme abaixo:

# Generated by NetworkManager
domain seudominio.br
search seudominio.br
nameserver 127.0.0.1


Salve o arquivo e saia do editor.

OBS.: 

seudominio é o nome que usou anteriormente para designar seu dominio.
127.0.0.1 é o IP de localhost, ou seja, o nome será resolvido pelas regras internas de seu DNS.


Vamos editar agora o arquivo hosts que está no diretório /etc, pelo comando:  
vim /etc/hosts

Abaixo da primeira linha (127.0.0.1 localhost), altere o arquivo conforme abaixo:

127.0.0.1      localhost
192.168.0.1    nomedns.nomedominio.br        nomedns

Salve o arquivo e saia do editor.

OBS.: 
nomedns é o nome que você escolheu para o seu servidor DNS. Deve ser sempre o mesmo.
seudominio é o nome que usou anteriormente para designar seu dominio. Usar sempre o mesmo.

192.168.0.1 é o IP que foi atribuido ao servidor DNS.



Edite agora o arquivo hostname no diretório /etc, pelo comando:
vim /etc/hostname

Só há uma linha nesse arquivo, designando o nome do seu micro. Altere ou inclua o nomedns atribuido ao seu servidor DNS, salve e saia do editor.



Edite agora o arquivo host.conf que está no diretório /etc, pelo comando:  
vim /etc/host.conf

Só há uma linha nesse arquivo. Exclua ela e acrescente a linha abaixo. Esse arquivo diz que para resolver os nomes, primeiramente é consultado o arquivo hosts e depois e entregue o serviço ao bind caso o nome não tenha sido encontrado no arquivo hosts.

order hosts,bind

Salve e saia do editor.



Vamos agora reiniciar o serviço Bind pelo comando:
/etc/init.d/bind9 restart
ou
service bind9 restart

Se houver alguma insconsistência ou erro, o serviço não será iniciado e uma mensagem de erro aparecerá.



Por fim vamos testar a parada toda através dos comandos nslookup e ping.

Digite no terminal:  
nslookup 192.168.0.1

O seguinte resultado deve parecer no terminal informando o nome atrelado a esse IP:

Server:         127.0.0.1
Address:        127.0.0.1#53
 

1.0.168.192.in-addr.arpa  name = nomedns.seudominio.br.
1.0.168.192.in-addr.arpa  name = server.seudominio.br.



Digite no terminal:
nslookup seudominio.br



O seguinte resultado deve parecer no terminal informando o IP atrelado a esse nomedns:

Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   seudominio.br
Address: 192.168.0.1


Digite no terminal:  
ping seudominio.br




O servidor deverá responder com o IP de seu servidor DNS, conforme o exemplo abaixo:

PING nomedns.seudominio.br (192.168.0.1) 56(84) bytes of data.
64 bytes from nomedns.seudominio.br (192.168.0.1): icmp_req=1 ttl=64 time=0.014 ms
64 bytes from nomedns.seudominio.br (192.168.0.1): icmp_req=2 ttl=64 time=0.010 ms
64 bytes from nomedns.seudominio.br (192.168.0.1): icmp_req=3 ttl=64 time=0.009 ms
64 bytes from nomedns.seudominio.br (192.168.0.1): icmp_req=4 ttl=64 time=0.009 ms

Pronto.

Por hoje é só pe,pe,pessoal. ehehehehehhe

Abração

Nenhum comentário: