Configurando BIND 9 + chroot sem mistérios

Cansado de procurar como fazer uma coisa tão baba como esta e não encontrar? Acabou seu martírio, este artigo ensina como fazer configurar seu servidor DNS.

[ Hits: 370.151 ]

Por: Alexandre de Jesus Marcolino em 12/02/2003 | Blog: http://blog.marcolino.com.br/wordpress/


Construindo os arquivos de configuração



Vamos começar pelo arquivo named.conf. Ele é o principal arquivo de configuração do bind e aqui apresentaremos sua configuração passo-a-passo para um simples servidor secundário ( DNS SLAVE ). Para começar apresentaremos um simples arquivo de configuração que permitirá ao seu servidor atuar como um Cache Server de requisições de DNS.

A partir deste arquivo estaremos incrementando ele até que este se torne um servidor secundário.

O arquivo named.conf deve estar dentro do diretório etc dentro da gaiola. Isto significa que devemos criá-lo em /chroot/named/etc. Para facilitar sua administração, recomendo que você crie um link simbólico em /etc apontando para ele.

ln -sf /chroot/named/etc/named.conf /etc/named.conf

Bom agora edite o arquivo /chroot/named/etc/named.conf e escreva as linhas abaixo OK.
options {
   directory       "/conf";
   pid-file        "/var/run/named.pid";
   statistics-file "/var/run/named.stats";
   dump-file       "/var/run/named.db";

   # hide our "real" version number
   version         "[secured]";
};

# The root nameservers
zone "." {
   type   hint;
   file   "db.rootcache";
};

# localhost - forward zone
zone   "localhost" {
   type    master;
   file   "db.localhost";
   notify  no;
};

# localhost - inverse zone
zone    "0.0.127.in-addr.arpa" {
   type   master;
   file   "db.127.0.0";
   notify no;
};

ATENÇÃO: O directory é /conf mesmo e não /chroot/named/conf. Nossa intenção é engaiolar o named e por isso sua raiz e o /chroot/named.

O arquivo de configuração se refere a três arquivos adicionais:
  • db.rootcache
  • db.localhost
  • db.127.0.0
Todos eles precisam ser criados em /chroot/named/conf.

O arquivo db.rootcache se refere à lista dos servidores de dns que compõem a rede de "root server", isto é, que possuem o cache para se chegar a qualquer outro IP do planeta. Cria-se este arquivo normalmente de forma automática consultando-os diretamente.

Se sua maquina aponta para algum servidor de DNS válido na Internet (vide o /etc/resolv.conf), você consegue criar este arquivo com o comando:

dig @a.root-servers.net . ns > /chroot/named/conf/db.rootcache.

Os arquivos db.localhost e db.127.0.0 você terá que criar na unha mesmo. Abaixo as listagens para você copiar.
;
; db.localhost
;
$TTL 86400

@ IN SOA  @ root (
            42       ; serial (d. adams)
            3H       ; refresh
            15M       ; retry
            1W       ; expiry
            1D )      ; minimum

    IN NS    @
    IN A     127.0.0.1



;
; db.127.0.0
;
$TTL  86400
@    IN   SOA   localhost. root.localhost. (
              1 ; Serial
              28800   ; Refresh
              14400   ; Retry
              3600000  ; Expire
              86400 )  ; Minimum
    IN   NS   localhost.
1    IN   PTR   localhost.

Estes arquivos só precisam ser criados uma vez.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O ambiente
   3. Compilando o BIND
   4. Tudo instalado, agora vamos ENGAIOLAR !
   5. Construindo os arquivos de configuração
   6. Verificando as permissões dentro da gaiola
   7. Inicializando o servidor NAMED
   8. Controlando o daemon com rndc
   9. Inicializando o named quando a máquina da BOOT !!!
   10. Consideracões finais
Outros artigos deste autor

SOCKS - Acessando Hosts remotos via OpenSSH

Criando VPNs entre servidores Linux sem mistérios (parte I)

openSUSE 12.1 - Instalando Oracle Java

Configurando um arquivo de zona

Tutorial de Instalação do ClamAV - Anti-vírus open Source

Leitura recomendada

Emuladores para seu sistema operacional

Instalar, configurar e navegar com softmodem no Slackware

Bem vindo ao planeta Viva o Linux

Conectando Ajato com Linux

Roteando duas sub-redes com servidores

  
Comentários
[1] Comentário enviado por rsouza em 29/08/2003 - 13:11h

Meus parabéns o arquivo é muito BOM......

[2] Comentário enviado por gustavo_marcon em 04/09/2003 - 18:18h

configurei um server DNS master, mas p/ registrar dominios preciso de um master e no minimo um slave não é?
ñ posso configurar só c/ um né?

então como faço p/ criar um DNS secundário?

Preciso valida-lo em alguma organização??

[3] Comentário enviado por L1nuxer em 26/03/2004 - 12:16h

O cara explico uma configuracao de DNS de uma forma que nao precisa disso tudo, ja que explicou dessa forma explica-se detalhadamente. e mesmo assim explique de uma forma configurando um dominio, vamos dizer que 40% desse artigo e aproveitavel!

Gustavo_marcon sim vc precisa de outra maquina para fazer o slave que seria o secundario.

[4] Comentário enviado por crildo em 11/06/2004 - 15:11h

Muito bom o seu artigo...

[5] Comentário enviado por cmarcelo em 05/07/2004 - 22:58h

Muito útil o chroot!

Segui os passos e está funcionado legal

Porém estou com uma dúvida, qual a utilizade do diretório log, já que ele sempre está vazio?

Carlos Marcelo

[6] Comentário enviado por reimassupilami em 04/08/2004 - 11:20h

Olá, eu estava seguindo todos os passos mas me ferrei na hora de executar aquele script que trata das permissões. Nem root conseguia acessar mais nada, daí até a inicialização ferrou. Resumindo, tive q reinstalar o sistema. O que posso ter feito de errado?

[7] Comentário enviado por rbn_jesus em 19/11/2004 - 09:59h

Help!
cara estou seguindo o teu tutorial para o fedora 2, apos a configuração do bind tentei executar o ./make, entretanto apareceu o seguinte erro:

[root@localhost bind-9.2.1]# ./make
bash: ./make: is a directory

como posso contornar isto, já tentei executar o cdm make detro do diretorio make, e outras tentativas inuteis...

agradeço a compreenção


[8] Comentário enviado por ace rush em 24/11/2004 - 01:22h

Poutz muito bom!!!

mas eu achei que realmetne ia rolar um #chroot /chroot/named...

mas vi que se faz de oturo modo (setando permissoes).... e nao tem jeito se alguem der um buffer overflow e cair de shell ali dentro, de poder subir pro filesystem ?

[9] Comentário enviado por icasol em 17/01/2005 - 15:45h

Cara,


Le seu artigo...estou da pra vc mandar uma dica para do DNS secundario no Slakware 10....o DNS primario eu fiz usando seu DOC...muito bom...

Valew

Rubens Andrade

[10] Comentário enviado por jehpy em 05/04/2005 - 23:34h

Oi é o seguinte... tentei instalar o servidor conforme suas dicas, mas na hora de executar o named.start ele da um erro: bash: PATH: command not found.

Estou usando o CL10...

[11] Comentário enviado por leandroalmeida em 18/11/2005 - 11:20h

Excelente artigo...
mas quando executo o rndc status ele apresenta o seguinte erro..

rndc: Couldn't find server 'localhost': Name or service not known

outra pergunta de iniciante.. o dns server para resolucionar nomes? por exemplo
transformar 200.171.171.171 em www.meudominio.com.br?

[12] Comentário enviado por gustavo_marcon em 18/11/2005 - 15:26h

leandroalmeida, é ao contrário que o DNS funciona, ele transporma nome para ip e não ip para nome.

Ou seja ela faz vc ir de www.seudominio.com.br para 200.171.171.171 mas não ir de 200.171.171.171 para www.seudominio.com.br, até porque é por IP diretamente que a internet trabalha, então nem faria sentido essa ordem.

[13] Comentário enviado por julinhoramones em 16/03/2006 - 21:40h

Caro gustavo_marcon, o uso básico do DNS a priori é para realizar a resolução de nomes para endereços IP. Mas há casos onde necessitamos utilizar o servidor DNS para realizar resolução reversa, onde através do IP é possível obter o nome.
Sendo assim, você pode criar base de dados para resolução comum e reversa.

[14] Comentário enviado por Tyreon em 11/07/2006 - 19:29h

Vlw!! Me ajudou mto!!

[15] Comentário enviado por guga_osicom em 10/08/2006 - 13:06h

A configuração proposta pelo artigo foi implementada. Os resultados usando o nslookup foram aceitaveis. Porém quando uso o ping em outra máquina da rede para acessar o servidor DNS ele não encontra. Alguma sugestão será bem vinda.

[16] Comentário enviado por scristina4 em 24/09/2006 - 16:07h

Gostaria de ler o artigo, mas não consegui ainda, preciso dele para efetuar um trabalho de faculdade, sou novata na área de rede principalmente preciso configurar o servidor DNS linux mas não encontrei nenhum material apropriado, tipo passo a passo, porque em linux sou leiga, sei pouca coisa. Então depois faço meus comentários sobre o artigo.
Atenciosamente,
Sogeamfe

[17] Comentário enviado por alexandrecorrea em 25/09/2006 - 03:19h

gustavo_marcon:

o bind/named converte tanto nome.com.br para ip e ip para nome.com.br !!

veja um exemplo de ip para nome:

supondo que temos o bloco 200.200.200.1.0/24

named.conf

zone "1.200.200.in-addr.arpa" IN {
type master;
notify yes;
file "reverso.200.200.200.1.zone";
};


arquivo reverso.200.200.200.1.zone

$TTL 14400
$ORIGIN 1.200.200.IN-ADDR.ARPA.
@ 14440 IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. (
2006061404
1H
15M
1W
20M
)

@ 7200 IN NS ns1.dominio.com.br.
@ 7200 IN NS ns2.dominio.com.br.


1 7200 IN PTR ip01.dominio.com.br.
2 7200 IN PTR ip02.dominio.com.br.

$GENERATE 10-254 $ PTR ip$.dominio.com.br.



-------

esse ultimo ai.. $GENERATE gera automaticamente.... do 10 ao 254 :)





[18] Comentário enviado por maickelpc em 26/11/2007 - 17:36h

bacana...enfim conclui meu dns

[19] Comentário enviado por peace em 04/12/2007 - 16:56h

show de bola o artigo. Botei meu dns pra rodar rapidinho. como é útil, vou linkar o aritigo no meu blog, ok?

abraço.

Tiago Lima

[20] Comentário enviado por edivaldocaj em 19/12/2007 - 15:39h

parabéns, otimo tutorial...

[21] Comentário enviado por linuxss em 25/06/2008 - 22:05h

Quando configuro este script e mando executar o teste através do comando descrito acima, sou informado que os paramentros:

[root@localhost chroot]# sh -x /chroot/named.perms
+ cd /chroot/named
+ chown -R root.named
chown: operando em falta após `root.named'
Tente `chown --help' para mais informação.
+ find .-type f -print
+ xargs chmod u=rw,og=r
find: .-type: Arquivo ou diretório não encontrado
find: f: Arquivo ou diretório não encontrado
chmod: operando em falta após `u=rw,og=r'
Tente `chmod --help' para mais informação.
+ find .-type d -print
find: .-type: Arquivo ou diretório não encontrado
find: d: Arquivo ou diretório não encontrado
++ u=rwx,og=rx
+ xargs chmod
chmod: operando em falta
Tente `chmod --help' para mais informação.
+ chmod 'o=etc/*.conf'
chmod: operando em falta após `o=etc/*.conf'
Tente `chmod --help' para mais informação.
+ touch conf/secondaries/.empty
+ find conf/secondaries/ -type f -print
+ xargs chown named.named
+ find conf/secondaries/ -type f -print
+ xargs chmod ug=r,o=
+ chown root.named conf/secondaries/
++ ug=rwx,o
+ chmod = conf/secondaries/
+ chown root.root var/
+ chmod u=rwx,og=x var/
+ chown root.named var/run/
+ chmod ug=rwx,o=rx var/run/
+ chown root.named logs/
+ chmod ug=rwx,o=rx logs/

Ja tentei colocar aspas de todas as maneiras mas naum funciona, por favor preciso de ajuda obrigado.

[22] Comentário enviado por aurelio.silva em 30/06/2008 - 15:21h

Se tenho um server com dois IPs, como posso fazer o master e slave na mesma maquina?

[23] Comentário enviado por cpaynes em 22/07/2009 - 16:03h

velhoo .. bom tutorial ...
so to com uma duvida ..
eu tenhu um servidor dhcp rodando ..
o que eu coloco na linha option domain-name-servers ???
e no resolv ... ???
abracos ..

[24] Comentário enviado por rcorrea em 28/10/2009 - 20:40h

Estou configurando o DNS numa maquina com Ubuntu Jaunty 9.04 kernel 2.6.28.16.
Quando tento criar o arquivo db.rootcache ocorre falha de permissao, veja abaixo:
"sudo +tcp dig @a.root-servers.net . ns > /chroot/named/conf/db.rootcache"
bash: /chroot/named/conf/db.rootcache: Permissão negada

o revolv.conf aparentemente esta ok.

o que pode estar errado?

[25] Comentário enviado por DiegocostaJ em 17/10/2018 - 03:50h

Para mim não funcionou, estou utilizando o Centos. Os script de inicialização acho que estão errados. Eu fiz conforme o KB porém sem sucesso.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts