Configuração DNS · 6 min read · Nov 27, 2025
Configuração Perfeita do DjbDNS no Servidor Ubuntu 8.04 (amd64) Hardy
Configuração Perfeita do DjbDNS no Servidor Ubuntu 8.04 (amd64) Hardy
DjbDNS é uma coleção de ferramentas do Sistema de Nomes de Domínio. Inclui software para todas as operações fundamentais de DNS:
Cache DNS: Encontrando endereços de hosts da Internet. Quando um navegador deseja contatar www.hotwired.com, ele primeiro pergunta a um cache DNS, como o dnscache do djbdns, para encontrar o endereço IP de www.hotwired.com. Provedores de serviços de Internet executam dnscache para encontrar endereços IP solicitados por seus clientes. Se você estiver executando um computador doméstico ou uma estação de trabalho, pode executar seu próprio dnscache para acelerar sua navegação na web.
Servidor DNS: Publicando endereços de hosts da Internet. O endereço IP de www.hotwired.com é publicado pelos servidores DNS da HotWired. O djbdns inclui um servidor DNS de uso geral, o tinydns; administradores de rede executam o tinydns para publicar os endereços IP de seus computadores. O djbdns também inclui servidores de propósito especial para publicar paredes DNS e RBLs.
Cliente DNS: Comunicando-se com um cache DNS. O djbdns inclui uma biblioteca C de cliente DNS e várias utilidades de cliente DNS de linha de comando. Programadores usam essas ferramentas para enviar solicitações a caches DNS.
O DjbDNS também inclui várias ferramentas de depuração de DNS, notavelmente o dnstrace, que os administradores usam para diagnosticar servidores remotos mal configurados.
Recursos de segurança:
- dnscache é executado como um uid não-root dedicado dentro de uma jaula chroot, portanto, não pode tocar o restante da máquina.
- tinydns é executado como outro uid não-root dedicado dentro de sua própria jaula chroot.
- walldns é executado como outro uid não-root dedicado dentro de sua própria jaula chroot.
- dnscache descarta consultas DNS de fora de uma lista especificada de endereços IP.
- dnscache e a biblioteca dns usam um novo ID de consulta e uma nova porta UDP para cada pacote de consulta. Eles descartam respostas DNS de qualquer endereço IP que não seja aquele para o qual a consulta correspondente foi enviada.
- dnscache usa um gerador criptográfico para selecionar números de porta e IDs imprevisíveis.
- dnscache é imune a envenenamento de cache.
tinydns nunca armazena informações em cache. Não suporta recursão.
Pré-instalação
apt-get install build-essential
mkdir /tmp/downloads
cd $_
wget -c HYPERLINK "http://www.thedjbway.org/patches/djb_errno_patches.tgz" http://www.thedjbway.org/patches/djb_errno_patches.tgz
tar -zxvf djb_errno_patches.tgz
wget -c HYPERLINK "http://cr.yp.to/daemontools/daemontools-0.76.tar.gz" http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget -c HYPERLINK "http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget -c HYPERLINK "http://cr.yp.to/djbdns/djbdns-1.05.tar.gz" http://cr.yp.to/djbdns/djbdns-1.05.tar.gzInstalar Todos os Pacotes
a. Instalar ucspi-tcp-src:
cd /tmp/downloads
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < /tmp/downloads/ucspi-tcp-0.88.errno.patch
make
make setup checkb. daemontools
cd /tmp/downloads
tar -zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76/
touch /etc/inittab
patch -p1 < /tmp/downloads/daemontools-0.76.errno.patch
package/installvi /etc/event.d/svscan# svscan - daemontools
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /command/svscanbootEste instalador apenas cria links para todos os comandos svscan em /command, então é melhor copiar estes:
cd /command
rm -rf *
cp /tmp/downloads/admin/daemontools/command/* /command/Isso é tudo… então (você pode precisar reiniciar) …
initctl start svscanc. djbdns
cd /tmp/downloads
tar -zxvf djbdns-1.05.tar.gz
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup checkConfigurar Pacotes
Crie usuários (se não tiverem sido criados automaticamente):
adduser --no-create-home --disabled-login --shell /bin/false dnscache
adduser --no-create-home --disabled-login --shell /bin/false dnslog
adduser --no-create-home --disabled-login --shell /bin/false tinydnsConfigurar dnscache:
Em nosso cenário, precisamos que cada servidor mestre e escravo seja tanto “autoritativo” quanto “em cache”. Portanto, é muito importante entender como alcançar isso com o djbdns. Ao contrário do bind, o djbdns usa um IP individual para cada tipo de serviço DNS. Por padrão, cada sistema está pronto com 2 IPs => um IP de host e outro é IP de loopback. Portanto, qualquer sistema na LAN deve acessar o DNS em cache, portanto, o IP do host para o DNS em cache. E executaremos o autoritativo no IP de loopback e, mais tarde, vincularemos isso ao DNS em cache, assim os hosts da LAN podem consultar também os registros de host autoritativos.
mkdir /var/lib/svscan
dnscache-conf dnscache dnslog /var/lib/svscan/dnscache
ln -sf /var/lib/svscan/dnscache /service Verifique se o diretório “supervise” foi criado em /service/dnscache
Para verificar se está em execução: basta adicionar apenas uma única entrada como ‘nameserver
Agora você precisa permitir que os hosts da LAN consultem a partir dele. Então, basta criar um arquivo em branco nomeado de acordo com sua rede ou sub-rede como:
touch /etc/dnscache/root/ip/É isso. Agora você pode consultar de qualquer um dos hosts dessa
Ao contrário do bind, você pode ajustar o tamanho do cache do servidor de nomes editando o arquivo /etc/dnscache/env/CACHESIZE. Além disso, você pode atualizar ou limpar manualmente o cache executando o seguinte comando:
svc -t /service/dnscacheTemporariamente, você pode parar e iniciar o dnscache com os seguintes comandos:
svc -d /service/dnscache => para parar o serviço dnscache
svc -u /service/dnscache => para iniciar o serviço dnscacheConfigurar tinydns:
tinydns-conf tinydns dnslog /var/lib/svscan/tinydns
ln -sf /var/lib/svscan/tinydns /service Verifique se o diretório “supervise” foi criado em /service/tinydns.
Eles ainda não contêm nenhuma entrada de zona para quaisquer domínios, mas chegaremos a isso em breve. Bem, ao contrário do bind, as informações da zona são escritas em um único arquivo (mesmo para várias zonas, incluindo zonas reversas) e esse é /var/lib/svscan/tinydns/root/data. Este é um arquivo gravável por humanos que é posteriormente convertido em formato binário usando um comando tinydns e esse binário é chamado de formato cdb, então esse arquivo binário é /var/lib/svscan/tinydns/root/data.cdb de onde o tinydns responde a todas as consultas. A sintaxe para registros de zona é muito curta e compacta em comparação com o bind. Aqui estão alguns exemplos:
a. Para entrada de servidor de nomes:
.in.domain.com:10.20.0.10:ns1.in.domain.com
.in.domain.com:10.20.0.12:ns2.in.domain.comb. Para reverse-dns para o servidor de nomes acima:
.10.in-addr.arpa::ns1.in.domain.com
.10.in-addr.arpa::ns2.in.domain.comc. Para registros MX:
@in.domain.com:165.212.65.113:mx.usa.net:10
@in.domain.com:10.20.0.12:mail.in.domain.com:20d. Registros A:
=host0001.in.domain.com:10.10.0.101e. Registros de alias para hosts:
+host01.in.domain.com:10.10.0.101
+mysql01.in.domain.com:10.10.0.101E finalmente, converta /var/lib/svscan/tinydns/root/data para o formato cdb por
tinydns-dataou
cd /var/lib/svscan/tinydns/root
makeNo final, para vincular essas informações de zona ao servidor DNS em cache, crie arquivos nomeados como 10.in-addr.arpa, in.domain.com e domain.com etc. no diretório /var/lib/svscan/dnscache/root/servers/, cujo conteúdo deve ser 127.0.0.1 (o IP de Loopback). É isso. Está tudo configurado.
Nota: Sempre que você fizer alterações nos dados e criar um arquivo data.cdb alterado, não se esqueça de atualizar ou limpar o cache.
svc -t /services/*Configuração do Servidor Escravo Usando Djbdbs
Basta seguir http://www.seebq.com/dns-replication-using-rsync e algumas alterações em alguns arquivos do Mestre e dos Escravos.
a. Alterações no /var/lib/svscan/tinydns/root/Makefile do mestre: Edite o arquivo como
remote: data.cdb
rsync -az -e ssh data.cdb :/service/tinydns/root/data.cdb
ssh 'svc -t /service/dnscache'
data.cdb: data
/usr/local/bin/tinydns-data
svc -t /service/dnscache b. Alterações no arquivo /var/libsvscan/tinydns/root/data do escravo como
# Não edite os dados neste computador! data.cdb é copiado do MESTRE.
# A linha a seguir protege data.cdb parando o make.
9Assim, se por engano alguém digitar o comando make no diretório /etc/tinydns/root ou o comando tinydns-data, isso apenas limpará o cache, pois não há arquivo de dados no(s) escravo(s).
E sim, apenas uma configuração de login auto-ssh entre mestre e escravo(s) para que as alterações acima automatizem o processo. As alterações acima apenas enviarão o arquivo data.cdb para o(s) escravo(s). Portanto, não há chance de dados diferentes entre os servidores de nomes, o que significa consistência em todos.
Backup e Restauração
Como mínimo, precisamos apenas de uma cópia do arquivo /var/lib/svscan/tinydns/root/data ou, no máximo, todo o /var/lib/svscan/dnscache e /var/lib/svscan/tinydns. É isso.
Para restauração, basta configurar o dnscache ou tinydns, levará pouco tempo, e copiar os dados de backup. Finalmente, crie um link simbólico para /service. É isso.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.