Banner

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.