Tutoriais/DNS/DJB-DNS
De UnderLinux Wiki
Tabela de conteúdo |
Instalação
O DjbDNS roda na máquina através dos serviços daemontools e ucspi. Antes de qualquer coisa, será necessário a instalação desses softwares para que o DjbDNS funcione corretamente.
Abaixo será explicado como deverá ser feita a instalação desses dois componentes.
Daemontools
Será necessário baixar o daemontools. Isso pode ser feito pelo comando:
wget ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Após o download, siga os seguintes passos:
tar zxvf daemontools-0.76.tar.gz mv admin / cd admin/daemontools-0.76 sh package/install
UCSPI
Faça download do pacote pelo comando:
wget ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
Após o download, siga os seguintes passos:
tar zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 make make setup check
Feito a instalação dos 2 componentes vitais para o DjbDNS funcionar, é hora de baixar e instalar o DjbDNS no servidor.
DjbDNS
Faça o download do DjbDNS pelo comando:
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
Após o download, siga os seguintes passos para instalação do servidor DjbDNS:
tar zxvf djbdns-1.05.tar.gz cd djbdns-1.05 make make setup check
Fazendo um DNS Cache
Feita a instalação, vamos à configuração do servidor de DNS propriamente dito.
Antes, vamos criar 4 usuários no sistema para o DjbDNS funcionar corretamente.
Os usuários que serão criados são: dnscache, dnslog, tinydns e axfrdns.
Execute os seguintes comandos para a criação desses usuários:
useradd dnscache -d /home/djb -s /bin/false -g users useradd dnslog -d /home/djb -s /bin/false -g users useradd tinydns -d /home/djb -s /bin/false -g users useradd axfrdns -d /home/djb -s /bin/false -g users
Após adicionar os usuários, precisamos configurar os diretórios dos usuários e qual IP ficará responsável por responder a uma requisição de DNS no servidor.
Execute o seguinte comando para fazer com que essas configurações sejam criadas:
dnscache-conf dnscache dnslog /etc/dnscache xx.xx.xx.xx
Altere o valor xx.xx.xx.xx pelo IP do servidor que deverá responder às requisições de DNS. Precisamos criar um link simbólico desse diretório que acabamos de criar para dentro do diretório /service, para que ele seja executado automaticamente pelo daemontools.
ln -s /etc/dnscache /service
Feito isso, precisamos liberar as redes/IPs que poderão ter acesso ao servidor DNS. Execute o seguinte comando:
touch /etc/dnscache/root/ip/y.y.y
Altere o y.y.y pela rede que você quer que tenha acesso ao servidor DNS.
Exemplo:
Se colocarmos 172.16.24, será liberada a rede 172.16.24.0/24, se colocarmos
172.21.1.1, será liberado apenas o IP 172.21.1.1
Terminados todos os passos acima, basta reiniciarmos o serviço do daemontools para que o DNS seja iniciado. Faça isso com o comando:
/sbin/init q
Pronto, o DjbDNS já está pronto para ser usado como um servidor DNS cache.
Fazendo um DNS autoritário
O tinydns é o programa que responde autoritativamente. É pelo tinydns que serão cadastrados nossos domínios.
Primeiramente execute:
tinydns-conf tinydns dnslog /etc/tinydns x.y.z.a
E para iniciar o tinydns:
ln -s /etc/tinydns /service
Agora vamos registrar nos nossos domínios nesse DNS recém criado.
Quem está acostumado com o MIX do /etc/named.conf e /var/named, vai achar essa parte bem mais simples.
Para adicionar um DNS server faça o seguinte:
cd /service/tinydns/root ./add-ns ns1.blablabla.com.br <IP> make
Para adicionar um servidor MX:
cd /service/tinydns/root ./add-mx smtp.blablabla.com.br <IP> ./add-mx smtp2.blablabla.com.br <IP> make
Para adicionar um servidor genérico de DNS:
cd /service/tinydns/root ./add-host www.blablabla.com.br <IP> ./add-alias home.blablabla.com.br <IP> make
Pronto, o DNS já está funcionando.
Agora vamos explicar como permitir a transferência de ZONA do DNS com o axfrdns.
Configurando o axfrdns
axfrdns-conf axfrdns dnslog /etc/axfrdns /etc/tinydns <IP>
Você deve especificar cada IP e domínio que pode ser transferido para um outro DNS. Por exemplo, vamos permitir que o IP 10.11.12.1 transfira a zona do blablabla.com.br:
echo '10.11.12.1:allow,AXFR="blablabla.com.br"' >> /etc/axfrdns/tcp
Script de configuração
Existe um procedimento que ajuda e muito a inserção de novos domínios no DNS, não precisando toda vez executar o add-mx, add-ns.
Crie um arquivo com todas as informações do domínio:
vi /etc/novo-dominio
E dentro desse arquivo, adicione as informações:
.DOMINIO.com.br:<IP>:259200 =www.DOMINIO.com.br:<IP>:86400 +smtp.DOMINIO.com.br:<IP>:86400 @DOMINIO.com.br:<IP>:86400 +DOMINIO.com.br:<IP>:86400 +ns1.DOMINIO.com.br:<IP>:86400 +ns2.DOMINIO.com.br:<IP>:86400 +ftp.DOMINIO.com.br:<IP>:86400
Lembre-se de alterar o <IP> pelos IPs responsáveis pelos serviços.
Sendo que:
Símbolo Significado . DNS Server = Nome + Apelido @ MX
Agora crie um arquivo chamado /etc/tinydns/root/add-domain e coloque o seguinte conteúdo:
#!/bin/bash if [ -z $1 ]; then echo "informe o domínio" exit fi cat /etc/exemplo-tiny |sed s,DOMINIO.com.br,$1,g >> data
E para adicionar o domínio com as informações informadas anteriormente no arquivo /etc/novo-dominio:
cd /service/tinydns/root ./add-domain DOMINIO2.com.br make
Pronto.... servidor funcionando!
Link
Para maiores informações sobre o DjbDNS, visite o site:
que serviu de referência para esse artigo.
Autor
- Julio Cesar Mauro (jmauro@underlinux.com.br)


