DNS e DNS reverso rapidamente no Linux

Este artigo visa demonstrar com simplicidade a instalação e configuração de um servidor de DNS com DNS reverso utilizando o Linux Debian Etch.

[ Hits: 73.826 ]

Por: Leandro Nascimento de Souza em 10/09/2008 | Blog: http://www.mailgateway.com.br


Introdução



Este artigo visa a instalação simples e rápida de um servidor de nomes em um servidor utilizando Debian Linux Etch, o artigo assume que o servidor já esteja corretamente instalado.

A maior parte das entradas dos arquivos de configuração do DNS são chamados de Resource Records. A pesquisa feita pelo DNS ignora letras maiúsculas, minúsculas ou misturadas. Normalmente se utiliza apenas letras maiúsculas. Os Resource Records precisam iniciar na primeira coluna.

Resource Records encontrados no arquivo de configuração:
  • SOA: Indica a autoridade para os dados do domínio;
  • NS: Lista um servidor de nomes para o domínio;
  • A: Mapeamento de nomes para endereços;
  • PTR: Mapeamento reverso ou de endereço para nomes;
  • CNAME: Nomes canônicos (para aliases);
  • MX: Mail Exchanger.

DNS no Linux: Instalação e configuração

A instalação do Bind no Debian é bem simples, com o apt corretamente configurado basta executar:

# apt-get install bind

Configuração do servidor Linux

Nesta etapa editaremos alguns arquivos e teremos uma breve descrição em cada um deles, configuraremos um domínio de exemplo chamado intranet.com.br e o ip de nosso servidor 192.168.0.10, com o hostname server-01:

# hostname server-01.intranet.com.br

Para tornar a alteração efetiva, a mesma deve ser realizada também no arquivo /etc/hostname.

/etc/resolv.conf

Neste arquivo especificamos nosso domínio e nossos servidores de nomes, em nosso exemplo o arquivo ficará com o seguinte conteúdo:

search intranet.com.br
nameserver 192.168.0.10

/etc/bind/named.conf

Neste arquivo configuramos nossas zonas, ao final dele devem ser criadas a zona de nosso domínio e também nossa zona reversa:

zone "intranet.com.br" {
      type master;
      file "/etc/bind/db.intranet.com.br";
};

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

/etc/hosts

Este arquivo resolve nomes de computadores localmente no servidor, recomendado criar apontamentos no mesmo somente quando nosso servidor precisar resolver nomes para si próprio, o mesmo deve ficar da seguinte forma:

127.0.0.1       localhost.localdomain   localhost
192.168.0.10    server-01.intranet.com.br    intranet

Deve ser informado o ip do host, em seguida o FQDN (nome do host, seguido do domínio), e depois o nome do host.

/etc/host.conf

Este arquivo define a ordem de pesquisa na resolução de nomes, o mesmo não será editado, sendo mantido o padrão.

/etc/bind/db.intranet.com.br

Por padrão, na instalação no Debian, o Bind é instalado em /etc/bind, agora editaremos os arquivos de nossas zonas, copiando dos arquivos já criados e apenas editando os mesmos com o nome do nosso domínio:

# cd /etc/bind
# cp db.local db.intranet.com.br


A aparência de nosso arquivo editado deverá ser a seguinte:

; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     server-01.intranet.com.br. root.intranet.casa.com.br. (
            1         ; Serial
            604800         ; Refresh
            86400         ; Retry
            2419200         ; Expire
            604800 )       ; Negative Cache TTL
;
@       IN      NS      server-01.casa.com.br.
server-01    IN      A       192.168.0.10

Lembrando que os apontamentos feitos nestes arquivos devem ser com tab e não com espaços.

/etc/bind/db.0.168.192

Ainda no diretório corrente, editaremos o arquivo da zona reversa, o procedimento é exatamente o mesmo, porém copiando o arquivo diferente e editando o mesmo, como mostrado abaixo:

# cp db.127 db.0.168.192

Editaremos o arquivo para que fique da seguinte forma:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     server-01.intranet.com.br. root.intranet.com.br. (
            1         ; Serial
            604800         ; Refresh
            86400         ; Retry
            2419200         ; Expire
            604800 )       ; Negative Cache TTL
;
@       IN      NS      server-01.intranet.com.br.
10      IN      PTR     server-01.intranet.com.br

Por fim basta reiniciar o serviço:

# /etc/init.d/bind restart

Configuração dos clientes

No Linux os clientes devem ser configurados editando o arquivo /etc/resolv.conf, deixando o mesmo da seguinte maneira:

search intranet.com.br
nameserver 192.168.0.10

No Windows e outros sistemas operacionais, basta efetuar a operação em suas configurações de rede.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Tripwire - Checando a integridade do sistema

Leitura recomendada

Instalando o Zenmap e mantendo-o atualizado no Slackware Linux

O que é e como configurar rede AD HOC no Ubuntu

Compiz Fusion no Gutsy

Sabayon 5.0 - Transformando Sabayon 4.0r1 em Sabayon 5.0 "Full" (parte 2)

Reempacotamento e repositório local em um sistema Debian-like

  
Comentários
[1] Comentário enviado por andrefreire em 10/09/2008 - 17:37h

Arquivo simples e direto porém eu usaria o bind9 por ser mais atual e não o bind !

[2] Comentário enviado por grandmaster em 10/09/2008 - 21:03h

Sim não só por ser mais atual, mas também para evitar a vulnerabilidade encontrada recentemente no DNS.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


[3] Comentário enviado por erhnamdjinm em 11/09/2008 - 08:33h

Praticamente todos os tutoriais de DNS / DNS reverso encotnrados na Internet utilizam classe C. É importante ressaltar que, quando trabalhando com classes A e B, o arquivo do reverso deve estar invertido também. Como no exemplo dado: 10 IN PTR server-01.intranet.com.br, se fosse em classe B, e o ip fosse 172.16.0.2, deveria colocar 2.0 IN PTR server-01.intranet.com.br

[4] Comentário enviado por spikey em 11/09/2008 - 09:10h

Utilizei o bind e classe C, pois trata-se somente de uma introdução de um servidor DNS para redes internas, mas agradecido pelos comentários :D

[5] Comentário enviado por Thiago Madella em 11/09/2008 - 15:43h

Boa dica amigo. Valeu mesmo..

[6] Comentário enviado por joabes em 11/09/2008 - 22:04h

Bom artigo, simples e direto.

Vale ressaltar para aqueles que querem um servidor de e-mails, web, pessoas que tem ip fixo em casa que muitas operadoras não deixam os ips abertos, mesmo o dns reverso configurado corretamente no servidor, é necessário entrar em contato com a operadora e solicitar o apontamento do reverso na central deles, ai com isso roda 100% qualquer servidor vai aceitar os e-mails pois o reverso está correto.

[7] Comentário enviado por aprendiz_ce em 30/09/2008 - 11:38h

Posso utilizar essa solução para resolver os endereços das estações (intranet) ou terei que cadastra-los um a um?
Parabéns pelo artigo!
Obrigado e aguardo retorno.

[8] Comentário enviado por spikey em 30/09/2008 - 13:13h

Pode colocar para resolver nomes das estações sem problemas. Você deve especificar nas estações ou no seu servidor DHCP. Qualquer dúvida poste aí...

[9] Comentário enviado por aprendiz_ce em 30/09/2008 - 22:35h

Olá spikey,

Confesso que não entendi o que você quis dizer. Basta eu "setar" o endereço do servidor de DNS nas estações e pronto, ou terei que cadastrar todas as estações (intraney) uma a uma no mesmo. Como devo proceder? Se for só "setar" o endereço do servidor de DNS nas estções e/ou via DHCP... Aí eu entendi!

Muito obrigado pela sua atenção e aguardo retorno.

Abraço.

[10] Comentário enviado por aprendiz_ce em 30/09/2008 - 22:59h

Olá spikey,

Fiz uns teste e acho que agora a "ficha caiu"... Quando todas as máquina da rede (intranet) passam a trabalho com o DNS local o mesmo resolver todos os endereços sem a necessidade de "setar" todas as estações (intenet) uma a uma no serividor. É isso, né? A "coisa" fica automatica... transparente...

Muito obrigado mais uma vez e aguardo o seu comentário.

[11] Comentário enviado por spikey em 01/10/2008 - 08:06h

Sim, seria isto mesmo! Quem resolveria nomes seria seu servidor interno.

[12] Comentário enviado por comfaa em 28/10/2008 - 12:35h

muito bom

[13] Comentário enviado por luizvieira em 27/05/2009 - 07:53h

Ótimo artigo!

[14] Comentário enviado por abtoniovalentin em 18/06/2009 - 01:11h

Amigos e no caso de termos uma classe C e precisarmos dividir ela em subclasses para termos reversos em alguns domínios como por exemplo ipotético:

Classe C: 192.168.0.0/24
Dividimos em 2 sub-classes:
1 - 192.168.0.0/25
2 - 192.168.0.128/25

A primeira terá um domínio como acme.com.br e precisa de reverso.
A segunda terá um domínio como tabajara.com.br e também precisa de reverso.

Fica a pergunta, como ficaria no named.conf a questão do reverso...

seria?
zone "0-127.0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.0-127.0.168.192";
};
zone "128-255.0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.128-255.0.168.192";
};
mas uma vez feito isso o reverso não funciona... como fazer?





[15] Comentário enviado por spikey em 18/06/2009 - 07:53h

Não entendi muito bem, no caso você quer trabalgar com sub-redes? Se sim pode usar o conceito de view interna e externa...

[16] Comentário enviado por abtoniovalentin em 18/06/2009 - 10:41h

é que se eu tenho a rede toda e divido esta rede entre 2 clientes ou até mais... Como fica o reverso, se faço da forma que apresentei não funciona, logo deve ter outra forma de fazer tive lendo bastante material sobre o assunto mas não tem nada sobre isso...

[17] Comentário enviado por spikey em 18/06/2009 - 11:13h

Então, o reverso você não precisa configurar para a rede interna, coloquei somente para exemplificar, mas se quiser configurar funciona, nesse caso você deve atribuir um ip par a outra rede, uma interface virtual por exemplo...

[18] Comentário enviado por abtoniovalentin em 18/06/2009 - 13:57h

O uso desta classe de ip´s que usei no exmplo é ipotético, na verdade estamos falando de ip´s válidos, quando configuro no bind9 para atender esta classe em 2 zonas como subredes da forma que apresentei o reverso para de funcionar, teria como fazer um arquivo de exemplo com estas zonas para atender este senário?

[19] Comentário enviado por spikey em 19/06/2009 - 08:09h

Aí vai um exemplo da Embratel:

$ttl 78000
128-191.57.209.200.in-addr.arpa. IN SOA host.dominio.com.br. root.host.dominio.com.br. (
2008090101
3600
900
604800
72000 )
128-191.002.00.200.in-addr.arpa. IN NS host.dominio.com.br.
128-191.002.00.200.in-addr.arpa. IN NS ns.embratel.net.br.
130 IN PTR host.dominio.com.br.

No named.conf adicionar o allow transfer:

named.conf:

zone "128-191.002.002.200.in-addr.arpa" {
type master;
file "128-191.002.002.200.in-addr.arpa.rev";
allow-transfer { (ns.embratel.com.br; };
};


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts