Instalando y configurando el djbdns
1. Introducción
Este pequeño tutorial está destinado para todos los que quieran montar un simple servidor DNS con esta óptima herramienta llamada Djbdns , fue basado en Openbsd, pero también sirve para las plataformas Linux, FreeBSD y etc...
Djbdns es un sustituto para el BIND (named). Es muy seguro, rápido y de fácil configuración (ustedes van a ver :D).
Fue escrito por D. J. Bernstein. Dicho autor intenta controlar mucho la seguridad en sus programas, entre ellos están: qmail , ezmlm , daemontools y otros
1.1 Observación
Usaré en este howto los siguientes ejemplos de ip's:
Ip externa del servidor DNS 200.200.0.1
Ip interna del servidor DNS 192.168.0.1
Ip servidor de e-mail 200.200.0.25
Ip servidor de web 200.200.0.80
Dominio acme.com.br
NO OLVIDE SUSTITUIR LAS IPS EJEMPLOS POR SUS IP'S!
2. Bajando los archivos necesarios
# mkdir /usr/local/src # cd /usr/local/src # wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz # wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz # wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz 3. Visión general del procedimiento de instalación de daemontools
Cree un directorio /package y descomprima daemontools dentro de el:
# mkdir /package # chmod 1755 /package # cd /package # tar vxfz /usr/local/src/daemontools-0.76.tar.gz Ahora solo queda instalar:
# cd admin/daemontools-0.76 # package/install Listo, el daemontools ya está instalado, notese que se crea una linea así en su /etc/rc.local :
csh -cf '/command/svscanboot &'
Para comenzar a ejecutar daemontools ejecute ese mismo comando:
# csh -cf '/command/svscanboot &' O reinicie su máquina.
4. Visión general del procedimiento de instalación de ucspi-tcp
Dentro del diretorio /usr/local/src descomprima el paquete ucspi-tcp:
# cd /usr/local/src # tar vxfz /usr/local/src/ucspi-tcp-0.88.tar.gz Ahora queda solo instalar:
# cd ucspi-tcp-0.88 # make setup check 5. Visión general del procedimiento de instalación de djbdns
El djbdns necesita de un grupo especifico para funcionar, para crear el grupo:
En OpenBSD o Linux use:
# groupadd djbdns En FreeBSD use:
# pw groupadd djbdns Djbdns también necesita algunos usuarios en el sistema. Para crear estos usuarios use:
En OpenBSD o Linux use:
# useradd -g djbdns -d /dev/null -s /sbin/nologin tinydns # useradd -g djbdns -d /dev/null -s /sbin/nologin dnscache # useradd -g djbdns -d /dev/null -s /sbin/nologin dnslog En FreeBSD use:
# pw useradd tinydns -g djbdns -d /dev/null -s /sbin/nologin # pw useradd dnscache -g djbdns -d /dev/null -s /sbin/nologin # pw useradd dnslog -g djbdns -d /dev/null -s /sbin/nologin Ahora descomprima e instale el djbdns :
# cd /usr/local/src # tar vxfz /usr/local/src/djbdns-1.05.tar.gz # cd djbdns-1.05 # make setup check # mkdir /var/djbdns # source /root/.cshrc El djbdns diferente de bind en su funcionamiento, son usados dos programas diferentes, para hacer el servidor de cache de DNS( dnscache ) y el dns server( tinydns ).
6. Configurando dnscache :
El dnscache es el responsable de mantener una cache de DNS, o sea, un DNS Server que resuelve dominios y también los guarda para que sean consultados siempre antes de intentar resolverlos de nuevo, lo que hará más rápida la resolución de nombres de su red.
Ejecute los siguientes pasos:
# cd /var/djbdns # dnscache-conf dnscache dnslog /var/djbdns/dnscache 192.168.0.1 # ln -s /var/djbdns/dnscache /service/ Inmediatamente después de enlazar el dnscache en el /service en unos 5 segundos ya debería estar funcionando (para eso que sirve el daemontools ).
Por defecto el dnscache no acepta conexiones de nadie, necesitamos dar permisos a las ip's 192.168.0.0/24 y 127.0.0.1:
# touch /var/djbdns/dnscache/root/ip/192.168.0 # touch /var/djbdns/dnscache/root/ip/127.0.0.1 Ahora el dnscache ya estará funcionando, edite su archivo /etc/resolv.conf y deje sólo la línea:
nameserver 192.168.0.1 Con esto ya estará resolviendo nombres usando su propia máquina.
Si va a usar también TinyDNS , es aconsejable hacer lo siguiente:
# echo "200.200.0.1" > /var/djbdns/dnscache/root/servers/acme.con.br # cp /var/djbdns/dnscache/root/servers/acme.con.br \ /var/djbdns/dnscache/root/servers/0.200.200.in-addr.arpa Reinicie el dnscache
# svc -h /service/dnscache/ 7. Configurando tinydns :
Podemos configurar el tinydns como servidor de DNS de un dominio propio que compremos en un registrador de dominios, por ejemplo http://nic.es/ .
Observación: El tinydns no puede funcionar en la misma ip del dnscache , pero pueden funcionar en la misma máquina, siempre y cuando haya 2 o más ip's en esa máquina.
Por ejemplo:
Si tiene una puerta de enlace que comparte su ADSL con su red interna, puede colocar el dnscache en la ip de la placa de red conectada en su red interna y el tinydns en la ip de la placa de red conectada en la ADSL.
O si tuviera sólo una placa de red con una conexión a internet puede colocar un alias de la ip en la misma placa de red conectada en su conexión...
Para instalarlo haga los siguientes pasos:
# cd /var/djbdns # tinydns-conf tinydns dnslog /var/djbdns/tinydns 200.200.0.1 # ln -s /var/djbdns/tinydns /service/ Inmediatamente después de enlazar tinydns en el /service en unos 5 segundos ya debería estar funcionando (para eso sirve daemontools ).
Ahora solo falta configurarlo, preste mucha atención porque son muchas líneas las que se van a configurar:
Entre en el diretorio del tiny:
# cd /var/djbdns/tinydns/root Y añada el host:
# ./add-ns acme.con.br 200.200.0.1 # ./add-host acme.con.br 200.200.0.80 # make Ahora puede ir a la web de su agente registrador, por exemplo http://nic.es, e intentar registrar un dominio, o modificarlo si ya lo tiene, indicando que el servidor dns de su dominio es la ip que fue configurada en el tinydns y si hizo todo correcto, responderá con "Autoridad sobre el dominio"
Como puede ver es simple de configurar, ahora sólo queda añadir el MX si quiere hacer funcionar un MTA ( Qmail , Postfix , Sendmail ...):
# ./add-mx mx.acme.con.br 200.200.0.25 # make Añadir Alias deseados, P.ej.:
# ./add-alias www.acme.con.br 200.200.0.80 # ./add-host mx.acme.con.br 200.200.0.25 # ./add-alias pop.acme.con.br 200.200.0.25 # ./add-alias smtp.acme.con.br 200.200.0.25 # make Observación: El "add-host" es usado siempre que sea creado un host con una ip diferente, el add-alias sería para crear un host con una ip que ya existe en el db del djb. Vea en el ejemplo de ./add-host mx.acme.con.br como es la primera vez que usamos la ip 200.0.0.25 (como host) usamos el add-host , debajo como ya usamos esta ip, usamos entonces el add-alias.
Referencia:
http://cr.yp.to/djbdns.html
Agradecimientos:
A David Barbero por las correcciones al Castellano/Español.