djbdns y dnscache en linux debian wheezy (7)

# apt-get install ucspi-tcp daemontools daemontools-run

# wget -q http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
# tar -xzvf djbdns-1.05.tar.gz

# echo 'dnscache:*:54321:54321:dnscache:/dev/null:/dev/null' >> /etc/passwd
# echo 'dnslog:*:54322:54322:dnslog:/dev/null:/dev/null' >> /etc/passwd


# cd djbdns-1.05/
# echo gcc -O2 -include /usr/include/errno.h > conf-cc
# make

# make setup check

# cp -rpf dnsroots.global /etc/
  
# useradd -d /var/log/dns -s /bin/false -g nogroup dnslog

# useradd -d /var/lib/tinydns -s /bin/false -g nogroup tinydns
# tinydns-conf tinydns dnslog /var/lib/tinydns 10.0.0.205
# ln -s /var/lib/tinydns /etc/service/
# ln -s /var/lib/tinydns/log/main /var/log/tinydns
# cd /etc/service/tinydns/env
# echo 10.0.0.205 > IP
# echo 10.0.0.205 > IPSEND
# echo 1 > FORWARDONLY



Para verificar si está corriendo el programa


# svstat /etc/service/*
/etc/service/tinydns: up (pid 1741) 1294 seconds



En mi caso yo emulo que tengo dos servidores de DNS entonces repito los mismos pasos anteriores solamente que en este caso es para tinydns2 y en el archivo /etc/service/tinydns2/env/ROOT modifico para que quede de la siguiente manera:

# cat ROOT
/var/lib/tinydns/root


De esa manera se emula el mismo proceso y sólo se modifica el mismo archivo /etc/service/tinydns/root/data para todos los dominios internos y externos.

Configuración para AXFR

# useradd -d /var/lib/axfrdns -s /bin/false -g nogroup axfrdns
# axfrdns-conf axfrdns dnslog /var/lib/axfrdns /var/lib/tinydns 10.0.0.103
# ln -s /var/lib/axfrdns /etc/service/
# ln -s /var/lib/axfrdns/log/main /var/log/axfrdns

# svstat /etc/service/*
/etc/service/axfrdns: up (pid 1929) 64 seconds
/etc/service/tinydns: up (pid 1875) 814 seconds
/etc/service/tinydns2: up (pid 1876) 814 seconds

* Otro comando que ayuda es este:
# netstat -anp|grep -i tinydns
udp 0 0 10.0.0.104:53 0.0.0.0:* 1876/tinydns
udp 0 0 10.0.0.103:53 0.0.0.0:* 1875/tinydns 


Entonces ya tenemos resolución de DNS sobre tcp, que hasta donde se no es muy usada, pero es mejor tenerla.

Configuración para DNSCACHE

# useradd -d /var/lib/dnscache -s /bin/false -g nogroup dnscache
# dnscache-conf dnscache dnslog /var/lib/dnscache 10.0.0.205
# ln -s /var/lib/dnscache /etc/service/
# ln -s /var/lib/dnscache/log/main /var/log/dnscache



Yo dejé mis archivos en /etc/service/dnscache/env

# ls
CACHESIZE DATALIMIT FORWARDONLY IP IPSEND ROOT
root@socrates2:/etc/service/dnscache/env# cat *
10000000
30000000
1
10.0.0.205
10.0.0.205



Si se requiere conectar vía OpenDNS hay que dejar el directorio /etc/service/dnscache/root/servers con por lo menos dos archivos, el @ y el @.root


# cat @
208.67.222.222
208.67.220.220


Esto hace que los servidores principales de resolución de todo el cache sean los de la nube de OpenDNS, con ello es posible crear una cuenta gratuira en opendns.com y configurar políticas de resolución de nombres por medio de categorías, realmente muy efectivo.

# cat @.root
198.41.0.4
192.228.79.201
192.33.4.12
128.8.10.90
192.203.230.10
192.5.5.241
192.112.36.4
128.63.2.53
192.36.148.17
192.58.128.30
193.0.14.129
198.32.64.12
202.12.27.33


Es importante agregar las redes que se están permitidas para resolver, esto se hace en:
/etc/service/dnscache/root/ip

touch 192.168 10.0.0 10.0.1 10.0.2 10.0.3 10.0.4 10.0.5 10.10.9

De esa manera están permitidas las redes 192.168.0.0/16, 10.0.0.0/24, 10.0.1.0/24, etc.

Y eso es todo, mucha suerte.

Comentarios

Entradas populares