Servidor DNS · 3 min read · Oct 02, 2025

Servidor DNS Clean djbDNS no CentOS - dnscache e tinydns - De A a Z

Servidor DNS Clean djbDNS no CentOS - dnscache e tinydns - De A a Z

O que é djbDNS? E por que usamos djbDNS? Há um novo ponto de vista para servir o serviço DNS - cada uma das funcionalidades do servidor DNS é um serviço separado, como autoridade, cache, encaminhamento e assim por diante. A outra diferença são as ferramentas daemon que reiniciarão rapidamente os serviços para evitar zumbis.

Requisitos:

Instalação limpa do CentOS 5.4

Faça login como root.

# yum update
# yum install gcc
# mkdir pkg
# cd pkg

O primeiro passo é instalar as ferramentas daemon:

# cd ~/pkg
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# gunzip daemontools-0.76.tar
# tar -xpf daemontools-0.76.tar
# rm -f daemontools-0.76.tar
# cd admin/daemontools-0.76
# vi src/conf-cc

Adicione a seguinte linha ao final da linha gcc:

-include /usr/include/errno.h
# ./package/install

Outro pacote que precisamos preparar para que o djbdns funcione é o ucspi:

# cd ~/pkg
# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
# gunzip ucspi-tcp-0.88.tar
# tar -xf ucspi-tcp-0.88.tar
# cd ucspi-tcp-0.88
# vi src/conf-cc

Adicione a seguinte linha ao final da linha gcc:

-include /usr/include/errno.h
# make
# make setup check

O próximo passo é a publicação do documento:

# cd ~/pkg
# wget http://cr.yp.to/djbdns/doc.tar.gz

Em seguida, descompactaremos os docs em /doc:

# gunzip < doc.tar.gz | (cd /; tar -xf -)

Use o seguinte script para mesclar nos docs do sistema:

#!/bin/sh
for i in packages commands cfunctions fileformats
do
  sort -f /dev/null `find /doc/merge -name $i.html` > /doc/$i.new
  mv /doc/$i.new /doc/$i.html
done

Salve o script em um arquivo: script.sh

# chmod +x script.sh
# ./script.sh
# cd ~/pkg
# wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
# gunzip djbdns-1.05.tar
# tar -xf djbdns-1.05.tar
# cd djbdns-1.05
# vi src/conf-cc

Adicione a seguinte linha ao final da linha gcc:

-include /usr/include/errno.h
# make
# make setup check

Toda a compilação é concluída.

O próximo passo é a configuração do servidor DNS.

DNSCACHE

Crie duas contas de usuário do sistema:

# useradd -d /var/dnscache -s /bin/false dnscache
# useradd -d /var/dnscache -s /bin/false dnslog

Configure o cache:

# dnscache-conf dnscache dnslog /var/dnscache/dnscache 

Exemplo: dnscache-conf dnscache dnslog /var/dnscache/dnscache 192.168.20.1

Permita que o resto da sua rede consulte o dnscache:

# touch /var/dnscache/dnscache/root/ip/

Exemplo: touch /var/dnscache/dnscache/root/ip/192.168

Adicione o dnscache à lista de serviços a serem monitorados pelo svscan:

# ln -sf /var/dnscache/dnscache /service/

Se você gosta do ms-windows… você pode reiniciar para ter certeza de que tudo está no lugar.

Há um ponto aqui que você ainda não pode consultar a partir do seu servidor de cache, porque seus clientes agora podem ser resolvidos em modo reverso.

Como mencionado antes, é uma das características de segurança do cache DNS verificar reversamente os clientes. Portanto, no próximo passo, trabalharemos no tinydns para agir por nós.

DNSTINY

Mais uma vez, precisamos de duas contas de usuário do sistema:

# useradd -d /var/dnscache -s /bin/false tinydns
# useradd -d /var/dnscache -s /bin/false tinylog
# tinydns-conf tinydns tinylog /var/dnscache/tinydns 127.0.0.1

Agora é hora de adicionar nós ao banco de dados DNS:

# cd /var/dnscache/tinydns/root
# ./add-ns internal 192.168.20.1
# ./add-ns 20.168.192.in-addr.arpa 192.168.20.1
# ./add-mx internal 192.168.20.2
# ./add-host ns.internal 192.168.20.1
# ./add-host mail.internal 192.168.20.2
# ./add-alias unagi.internal 192.168.20.2
# make

Esses nós irão para o arquivo de banco de dados /var/dnscache/tinydns/root/data que você pode editar manualmente.

O último passo é a inicialização do serviço DNS:

# ln -sf /var/dnscache/tinydns /service
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.