Ajustes finos no Bind (servidor DNS)

Neste artigo não pretendo ensinar a configurar o Bind, até porque aqui no VOL existem excelentes artigos e dicas que o fazem e de forma brilhante, mas sim ajudar a entender um pouco mais sobre os arquivos de configuração e erros que aparecem quando as configurações não estão 100% corretas.

[ Hits: 79.612 ]

Por: Jakson Galeti em 09/02/2009


Separando o log e analizando os erros



Não mencionei este arquivo na página anterior com o propósito firmar a importância dele na administração do serviço.

named.log

Arquivo de log gerado pelo BIND, o normal é que os logs do bind sejam encaminhados para /var/log/messages, mas como é para lá que vão a maioria das mensagens dos serviços instalados no S.O, sugiro que siga a dica de colocar estes valores dentro de named.conf e fazer as alterações abaixo para que os logs sejam direcionados para /var/log/named/named.log.

# Configuração de Log do Bind.
logging {
channel custom {
file "/var/log/named/named.log";
print-time yes;
print-category yes;
};
category config         {custom;};
category notify         {custom;};
category dnssec         {custom;};
category general        {custom;};
category security       {custom;};
category xfer-out       {custom;};
category lame-servers   {custom;};
};

Vamos usar no exemplo um domínio fictício "linuxinside.srv.br", para referenciar o ip vamos utilizar o w.x.y.z.

Partindo do princípio que o BIND foi instalado corretamente e que os arquivos referentes a zona e o named.conf foram preenchidos com as informações pertinentes ao seu domínio, o próximo passo é fazer a checagem das configurações:

named-checkconf

Com este comando podemos verificar a sintaxe do arquivo named.conf. Exemplo:

# named-checkconf named.conf

named-checkzone

Este comando verifica a sintaxe e a existência da zona. Exemplo:

# named-checkzone linuxinside.srv.br. Linuxinside.srv.br.zone

Quando as coisas não saem conforme o esperado, lá vamos nós para o log, já dizia um amigo meu: "não tem o que fazer, vá ler o log dos seus servidores", ele ainda dizia "leia o log de manhã, antes de tomar café, antes do almoço depois também, e a tarde e se der envie por e-mail e os veja a noite também". Atendendo o pedido dele descobri a real importância sobre os logs e reparei que não há muita informação de erros comuns de serviços em PT-BR, então tomei a iniciativa sobre erros do BIND.

Erros comuns na configuração do DNS

Sempre bate um friozinho na barriga quando vamos levantar algum serviço, pois esta é a hora que vamos vibrar se o serviço subiu conforme configurado.

Agora vamos reiniciar ou recarregar o named para que ele possa reler as informações referentes ao domínios que queremos representar autoridade na internet ou rede local.

Então vamos la:

# killall -HUP named
ou
# /etc/init.d/named start (stop ou restart)

Logo após reiniciar o named, devemos analisar o log do para saber se o serviço subiu certo.

Vamos a algumas mensagens de erro comuns, lembrando que esses erros são apresentados no arquivo de log que colocamos acima, lembre-se também de adicionar este arquivo no logrotate para que o mesmo gerencie a rotação do log.

dns_rdata_fromtext: pri/linuxinside.srv.br.zone:11: near 'mail.linuxinside.srv.br.': not a valid number

Para corrigir este erro basta adicionar um level para o mx.

Antes estava:

   IN   MX   mail.linuxinside.srv.br.

Agora a forma certa:

   IN   MX   5   mail.linuxinside.srv.br.

bad zone transfer request: 'z.y.x.w.IN-ADDR.ARPA/IN': non-authoritative zone (NOTAUTH):

Verifique se a existência do parâmetro:

allow-transfer { ISP; }; //ou simplesmente adicione "any".
allow-recursion { ISP; REDE INTERNA; }; //ou simplesmente adicione "any".

E tenha certeza que nele estão definidos e liberados o IPs que podem fazer consulta recursiva no seu DNS.

Este erro geralmente acontece na transferência de zona de arquivos da sua zona para a sua ISP, é importante lembrar que a maioria dos MTAs fazem consulta de reverso ao seu servidor de email para verificar a autenticidade do host e aí sim liberam o envio ou recebimento de e-mails do seu domínio.

Usando o comando host você pode confirmar a resolução de nome para IP e de IP para nome.

# host linuxinside.srv.br
Host linuxinside.srv.br not found: 3(NXDOMAIN)

# host w.x.y.z
Host w.x.y.z.in-addr.arpa. not found: 3(NXDOMAIN)

Há várias possibilidades de respostas para este erro, mas as mais comuns são:
  • Não existe o arquivo de zona referente a este domínio;
  • Se existe arquivo de zona, verifique se no named.conf alguma linha faz a instrução para a zona;
  • Se existe zona e está configurado, no named.conf, verifique se o ip w.x.y.z está cadastrado no reverso do seu range de IP.

CNAME and other data:

Alguma entrada na zona está apontando para um CNAME, reveja a configuração e troque para um registro do tipo A. Ex:

ns1.linuxinside.srv.br   IN   A   w.x.y.z

2009020401: número do serial, sempre que é feita alguma alteração na zona, devemos modificar esse número para que o DNS reverso secundário perceba que houve alterações e atualize deus dados. Sempre use esta sequência padrão: ano da alteração (2009), mês (02), dia (04) e número da alteração do dia (01).

Lame server on 'w.x.y.z':

O IP que aparece ou domínio é de um servidor sem autoridade sobre determinada zona. Os campos de uma tabela de nomes apontam para tal servidor como autoridade, mas na realidade este não a tem, ou talvez seja um servidor secundário já desativado ou se o IP for da sua ISP, significa que DNS da Embratel perdeu a autoridade sobre o domínio reverso em seu servidor primário e o delegou para você. Na maioria dos casos é porque ele usou um serial de número menor ao atualizar o arquivo de zona.

Contate o suporte da sua ISP.

bad dotted quad - unexpected end of input:

Alguma sintaxe errada existe na configuração da zona, verifique os caracteres a seguir: () . , ; {} [].

ignoring out-of-zone data:

A sua zona está sendo ignorada, verifique se ela está com a configuração correta e se constam entradas referentes à ela no named.conf.

dns_rdata_fromtext: - ran out of space:

Este erro geralmente acontece por falta de fechamento de "aspas" ou em algum arquivo com mais de 255 caracteres, o indicado é que adicione aspas antes de completar 255 caracteres.

Um exemplo válido e quando adicionamos vários IPs no spf e ele cria um registro do tipo TXT com mais de 255 caracteres, separe ele com algumas aspas dentro dos IPs liberados para enviar e-mail, lembre-se de fechar as aspas abertas.

Exemplo:

linuxinside.srv.br. IN TXT "v=spf1 ip4:192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12" "192.168.1.13 192.168.1.14 192.168.1.15 192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19 192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23 192.168.1.24 192.168.1.25 192.168.1.26 192.168.1.27 192.168.1.28 192.168.1.29 192.168.1.30 ip4:192.168.10.0/24 ptr ~all"

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. named.conf - O principal arquivo de configuração
   3. Os demais arquivos
   4. Separando o log e analizando os erros
   5. Referências e agradecimentos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Matriz <-> Filial com o OpenVPN

Libsafe: Protegendo Linux contra Smashing Overflow

Scanners de portas e de vulnerabilidades

Bypass de firewall com tunelamento por DNS

Detectando vulnerabilidades com o Nessus

  
Comentários
[1] Comentário enviado por dfsantos em 10/02/2009 - 08:46h

Parabens, jakao fico muito bom o artigo, ainda nao testei mas aparenta muita qualidade.

[2] Comentário enviado por jgaleti em 10/02/2009 - 08:59h

Obrigado cara. Que bom que uma pessoa qualificada como você gostou do artigo. Fico feliz e motivado a outras experiências como essa.

[3] Comentário enviado por richardandrade em 10/02/2009 - 09:59h

Eu já conhecia boa parte do bind9 e mesmo assim acabo aprendendo mais alguma coisa, é isso ae a comunidade software livre sempre crescendo junto, parabéns pelo seu artigo.

[4] Comentário enviado por jgaleti em 10/02/2009 - 10:19h

Valeu, richardandrade.
É isso que fomenta a comunidade "o prazer de aprender mais" ou mesmo "reaprender".

[5] Comentário enviado por tatototino em 11/02/2009 - 16:41h

Legal, só para incrementar seu artigo eu uso o comando named-checkconf -z para olhar os possiveis erros de configuração, esse comando verifica a sintaxe do arquivo de configuração named.conf e tenta carregar suas zonas, caso encontre alguma irregularidade ele nos informa.

[6] Comentário enviado por jgaleti em 11/02/2009 - 16:49h

É isso ae tatototino, obrigado pelo comentário que enriquece mais o artigo.

[7] Comentário enviado por pogo em 12/02/2009 - 10:38h

cara,

parabéns, pelo artigo! muito boas as dicas.

[]'s

pogo

[8] Comentário enviado por jgaleti em 12/02/2009 - 10:51h

Obrigado pogo, é legal ver o reconhecimento e as criticas.
Vida longa ao LINUX.

[9] Comentário enviado por elgio em 04/03/2009 - 10:20h

E ai rapaz!

Transformaste tua dica em artigo e ainda ganhaste uma camiseta!

Meus parabéns!

[10] Comentário enviado por jgaleti em 04/03/2009 - 10:59h

Valeu elgio, obrigado por ser disponível, responder duvidas e ainda dar dicas.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts