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 > FORWARDONLYPara verificar si está corriendo el programa
# svstat /etc/service/*
/etc/service/tinydns: up (pid 1741) 1294 secondsEn 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/rootDe 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/dnscacheYo 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.205Si 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.220Esto 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.33Es 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.9De 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
Publicar un comentario