MAL - Memória Auxiliar do Lutieri

quinta-feira, julho 26, 2007

DNS Tips

Recentemente construi dois servidores DNS com views e o diabo a quatro.
Debugando o BIND descobri algumas coisas interessantes as quais não encontrei muita informação na internet.

Os registros DNS são divididos em classes. Olhe esse trecho retirado do livro O'Reillly: DNS and BIND, 4th Edition:

Currently, there are classes for internets (any TCP/IP-based internet), networks based on the Chaosnet protocols, and networks that use Hesiod software. (Chaosnet is an old network of largely historic significance.)

Hoje usa-se apenas a classe internet não se sabe se alguém ainda usa a chaosnet. Porém o BIND carrega essa classe(chaosnet). E dentro dela estão algumas informações, por hora importantes, como a versão do BIND, o hostname da máquina onde ele está rodando e os autores do BIND.

A versão do BIND eu já sabia que podia ser consultada. O hostname do server me surpreendeu e os autores eu não consegui consultar. Mas se você carregar com o seguinte comando:

/usr/local/sbin/named -u named -t /chroot/named -g -c /etc/named.conf -d 10

Você verá todas as informações que são carregadas na inicialização. Entre elas uma linha como isto:

26-Jul-2007 15:19:01.984 zone hostname.bind/CH: starting load

Que é onde ele carrega a zona que armazena as informações que mencionei acima.
Indo diretamente ao que interessa que é fazer esse tipo de consulta à servidores rodando BIND.

  • Ex. de como consultar a versão do BIND usando a ferramenta dig:

dig @servidor version.bind txt chaos

  • O mesmo exemplo usando o nslookup:

nslookup
server servidor
set debug
set class=chaos
set type=txt
version.bind
A opção set debug não é necessária mas, útil para ceder mais informações.

Como essa informação, tanto da versão quanto do hostname do server, expõem o servidor a um certo risco. Podemos corrigir esses valores, facilmente, usando as seguintes diretivas no named.conf:

hostname " are you kidding me? ";
version " are you kidding me? ";

Bom...o nslookup é meio chato pra fazer as pesquisas. E até li em algum lugar que ele já é considerado obsoleto. Portanto vá se acostumando com o dig.

No nslookup você tem várias opções que podem ser setadas em modo interativo como o tipo de registro que deseja ser consultado, a classe que vai ser consultada enfim.... Para ver as opções que estão sendo usadas e quem sabe alterá-las pode-se digitar set all. Serão listadas as opções e os respectivos valores setados no momento.

Como fazer consultas de dns reverso. Ou seja, informar o nome e ser retornado o ip. Esses registros de dns reverso são do tipo PTR enquanto os de dns direto são do tipo A. Por padrão o nslookup busca por registros do tipo A.

  • Para fazer uma consulta de dns reverso usando o dig:

dig @servidor -x 192.168.1.1

  • A mesmo consulta utilizando o nslookup:

nslookup
server servidor
set debug
set type=ptr
192.168.1.1

Novamente o set debug não se faz necessário. É eu que tenho mania de usá-lo.

Os servidores usam um tipo de registro(AXFR) que solicita e transfere a zona inteira para quem solicitou. Hoje em dia é usado o IXFR que ao invés de transferir a zona inteira transfere apenas o que há de diferente entre o servidor que foi consultado e o que consultou.

Usando desse recurso podemos podemos fazer de conta que somos um servidor secundário que solicita uma transferência de zona completa. É um pouco útil quando está querendo conhecer um outro servidor... não me pergunte por qual motivos isso seria necessário mas...

dig @servidordns.com.br axfr empresaxyz.com.br

Isso solicita ao servidor servidordns.com.br uma transferência de zona completa da zona empresaxyz.com.br.

Se o pseudo-administrador da empresaxyz não setou a diretiva allow-transfer é bem possível que você verá uma lista de todos os registros pertencentes a essa zona.
Para evitar isso qualquer ser que se proponha a fazer um servidor deveria saber resolver isso com uma diretiva allow-transfer.

allow-transfer { none; };

Referência sobre DNS e BIND:
http://www.zytrax.com/books/dns/

Brevemente posto um how-to de como montar um servidor dns usando o bind, views, jails e afins...

[]'s

Marcadores: ,

0 Comentários:

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader