A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

BIND (DNS) na jaula

Qui

16

Mar

2006


01:00

(13 votos, média 4.23 de 5) 


Image Ao contrário do que muita gente pensa, quando digitamos um endereço no navegador, ou seja, quando pedimos que ele nos mostre uma página de um determinado domínio, a primeira coisa que o navegador faz é procurar o endereço IP do domínio. Se o cache do navegador ou a máquina não puderem fornecer este endereço, então um servidor DNS é acionado. Um DNS (Domain Name Server - Servidor de Nomes de Domínios) é um tradutor de nomes capaz de transformar um nome num número que corresponde ao endereço IP (Internet Protocol) da máquina que hospeda o domínio desejado. Somente depois de obter este número é que o navegador pode se comunicar com a máquina desejada e buscar a página solicitada. Por exemplo, quando você acessou esta página, você indicou o domínio www.numaboa.com que foi traduzido para o IP 200.195.184.106.

Um DNS também pode fazer um mapeamento reverso, ou seja, também é capaz de transformar um endereço IP num nome de domínio. É claro que os bilhões de domínios hospedados nos servidores que compõem a Internet não dependem apenas de um único DNS para fazer todas as traduções necessárias. Existem DNS especializados em países, em tipos (como .com, .org, .net, etc), assim como os chamados DNS autoritativos que dão a palavra final sobre domínios (indicam os responsáveis e o endereço IP).

Um dos maiores banco de dados do planeta

O conjunto de máquinas DNS que armazenam e fornecem os dados necessários para traduzir nomes de domínios em endereços IP e vice-versa formam um dos maiores bancos de dados do planeta e permitem que a Internet seja o que é hoje. Como cada uma das máquinas guarda uma parte das informações e todas elas trabalham em conjunto, este banco de dados é chamado de distribuído. Ser distribuído significa que cada servidor realiza uma parcela do trabalho e que cada responsável pelo servidor responde pelo correto funcionamento do serviço que disponibilizou. Lembre-se disto se você está pensando em instalar, configurar e disponibilizar um serviço de DNS. Um DNS mal comportado sobrecarrega o sistema e, falando Português claro, é o maior mico para o responsável! Então, antes de por a mão na massa, a melhor coisa que podemos fazer é planejar smile

Planejamento

Na primeira vez em que resolvi instalar e configurar um servidor DNS próprio, saí catando informações pela Internet. Como com tudo referente ao Linux, tinha certeza de que encontraria farto material com explicações detalhadas... e encontrei, só que foi um pedaço em cada canto e muita coisa sem explicação. Penei um bocado, briguei com a máquina, com o soft, com os scripts e nada parecia dar certo. Também, era a primeira vez wink

Conforme pesquisava, fui anotando tudo e mais alguma coisa (quase deu um livro!), testando várias configurações e quebrando a cara um sem número de vezes. Mas nem tudo foi em vão: tive a oportunidade de rever os conceitos de domínios e nomes de domínios no sistema, aprendi que o BIND é o software mais utilizado e de aprender que podemos colocar no ar quatro tipos diferentes de servidores de nomes - master (primário e autoritativo), slave (escravo ou secundário, também autoritativo), caching-only (sem autoridade, apenas um cache de informações) e forwarding (que remete a solicitação para outros servidores de nomes se não tiver a informação pedida). O mais importante, no entanto, foi descobrir que o BIND é vulnerável aos mais diversos ataques, o que me obrigou a tomar algumas precauções. Uma delas foi encarcerar (ou enjaular) o DNS.

Existem vários "sabores" Linux mas, por ser mais enxuto, mais próximo do Unix e funcionar 100%, costumo usar apenas o Slackware como sistema operacional. Por este motivo, todos os comandos e diretivas deste texto são para Slackware 10.2. Se você optou por uma distribuição diferente, faça as adaptações necessárias.

Como exemplo, vamos preparar a máquina "slack" como servidor primário de nomes. Seu endereço IP 10.20.30.40 é um endereço fixo (fictício), seu nome será ns1.numaboa.com.br e seu alias será DNSnumaboa. As etapas são:

  1. Instalação do BIND.
  2. Preparação da jaula.
  3. Configuração do servidor.
  4. Criação dos registros de recursos do servidor.
  5. Configuração do cliente.
  6. Definição das permissões.
  7. Ativação do sistema de nomes.
  8. Testes.
  9. Manutenção.

1. Instalando o BIND

Geralmente, quando instalamos o Slackware, o pacote do BIND também é instalado. Se você optou por não instalá-lo junto com o sistema, existem duas saídas: instalar o pacote BIND para Slackware ou compilar o daemon. Ambas são fáceis.

Instalando o pacote

Em http://www.slackware.com/packages/ procure a versão mais recente do BIND e faça o download. No momento em que estou escrevendo este artigo, é o bind-9.3.2-i486-3.tgz e costumo fazer os downloads do FTP do Slackware Brasil:

# cd /pacotes
# wget ftp://ftp.slackware-brasil.com.br/slackware-current/slackware/n/bind-9.3.2-i486-3.tgz

Você pode usar o aplicativo pkgtool ou o comando installpkg bind-9.3.2-i486-3.tgz.

Compilando o daemon

O site oficial do BIND é o ISC (Internet Systems Consortium, Inc.), no endereço http://www.isc.org/index.pl?/sw/bind/. Faça o download dos fontes, compile e instale:

# cd /downloads
# wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz
# gzip -d bind-9.3.2.tar.gz
# tar xf bind-9.3.2.tar
# cd bind-9.3.2
# ./configure
# make
# make install

Informações adicionais