Guia para configurar y operar un servidor DNS Tier 1
- Esta guia solo cubre bind9, otras guias propuestas deben ser enviadas a support@opennicproject.org
- Rev. 1
Instalar y Configurar un servidor Tier-1 requiere que tu servidor DNS sea esclavo de todas las zonas TLD del espacio de nombres OpenNIC.
Vamos a ir zona por zona (este documento se actualiza cuando hay mas zonas).
La forma mas simple de obtener copia de una zona completa es con
dig zona axfr @servidor > archivo_local
De forma alternativa, esta página muestra como configurar bind9 para que actualize automáticamente los nuevos TLDs disponibles y sus servidores maestros.
Como verás debajo, todas mis zonas residen en /etc/bind/zones y /etc/bind/zones/slaves. Debes cambiar estas rutas para adaptarlas al estilo de tu servidor. También es recomendable que corras bind en una jaula chroot y que otros servidores T1 se incluyan en las zonas como maestros por redundancia.
Lo siguiente es la zona raiz (root). Incluyelo en tu named.conf
zone "." { type slave; file "/etc/bind/zones/db.root"; masters { 75.127.96.89; }; allow-transfer { any; }; notify no; };
Lo siguiente son las zonas para cada TLD de OpenNIC, incluyelas en tu named.conf.
opennic.glue
zone "opennic.glue" IN{ type slave; file "/etc/bind/zones/slaves/glue.zone"; masters { 75.127.96.89; }; allow-transfer { any; }; notify no; };
dns.opennic.glue
zone "dns.opennic.glue" IN{ type slave; file "/etc/bind/zones/slaves/dns.glue.zone"; masters { 75.127.96.89; }; allow-transfer { any; }; notify no; };
geek
zone "geek" IN{ type slave; file "/etc/bind/zones/slaves/geek.zone"; masters { 202.83.95.229; }; allow-transfer { any; }; notify no; };
free
zone "free" IN{ type slave; file "/etc/bind/zones/slaves/free.zone"; masters { 202.83.95.229; }; allow-transfer { any; }; notify no; };
indy
zone "indy" IN{ type slave; file "/etc/bind/zones/slaves/indy.zone"; masters { 202.83.95.229; }; allow-transfer { any; }; notify no; };
parody
zone "parody" IN{ type slave; file "/etc/bind/zones/slaves/parody.zone"; masters { 216.87.84.210; }; allow-transfer { any; }; notify no; };
bbs
zone "bbs" IN{ type slave; file "/etc/bind/zones/slaves/bbs.zone"; masters { 207.192.71.13; }; allow-transfer { any; }; notify no; };
fur
zone "fur" IN { type slave; file "/etc/bind/zones/slaves/fur.zone"; masters { 84.200.228.200; }; allow-transfer { any; }; notify no; };
null
zone "null" IN{ type slave; file "/etc/bind/zones/slaves/null.zone"; masters { 202.83.95.229; }; allow-transfer { any; }; notify no; };
oss
zone "oss" IN{ type slave; file "/etc/bind/zones/slaves/oss.zone"; masters { 216.87.84.210; }; allow-transfer { any; }; notify no; };
ing
zone "ing" IN{ type slave; file "/etc/bind/zones/slaves/ing.zone"; masters { 128.177.28.254; }; allow-transfer { any; }; notify no; };
dyn
zone "dyn" IN{ type slave; file "/etc/bind/zones/slaves/dyn.zone"; masters { 207.192.71.13; }; allow-transfer { any; }; notify no; };
gopher
zone "gopher" IN{ type slave; file "/etc/bind/zones/slaves/gopher.zone"; masters { 66.244.95.11; }; allow-transfer { any; }; notify no; };
micro
zone "micro" IN{ type slave; file "/etc/bind/zones/slaves/micro.zone"; masters { 128.177.28.254; }; allow-transfer { any; }; notify no; };
neo
zone "neo" IN{ type slave; file "/etc/bind/zones/slaves/neo.zone"; masters { 199.30.58.57; }; allow-transfer { any; }; notify no; };
pirate
zone "pirate" IN{ type slave; file "/etc/bind/zones/slaves/pirate.zone"; masters { 209.141.35.9; }; allow-transfer { any; }; notify no; };
oz
zone "oz" IN{ type slave; file "/etc/bind/zones/slaves/oz.zone"; masters { 103.1.185.92; }; allow-transfer { any; }; notify no; };
¡Tras cambiar tu named.conf, recuerda reiniciar el bind!
/etc/init.d/bind9 restart
Ahora vamos a activar un poco de logueo para tu servidor DNS bind9. Estos logs son interesantes para revisar y detectar problemas, pero no se deben archivar.
Si quieres archivarlos hay un script perl escrito por Brianko que quita todas las direcciones IP y las sustituye por XXX.XXX.XXX.XXX. Esto es importante para
preservar la privacidad de los usuarios de tu servidor, y que puedan navegar por internet sin dejar rastro, de forma que el uso de este script es altamente recomendable.
Para activar el logueo, abre named.conf.options y añade el siguiente texto:
logging { channel "misc" { file "/var/log/misc.log" versions 2 size 25M; severity info; print-severity no; print-category yes; print-time yes; }; channel "querylog" { file "/var/log/named.log" versions 2 size 25M; severity info; print-severity no; print-category no; print-time yes; }; category "queries" { "querylog"; }; category default { "misc"; }; };
Dependiendo de tu configuracion (siempre recomendamos chroot), el directorio de logs puede estar en dos sitios. En una configuracion con chroot esta en /var/lib/named/var/log
y en una instalacion normal en /var/log.
Ve al directorio del log que te corresponda segun tu instalación, y escribe:
touch named.log chown bind:bind named.log touch misc.log chown misc.log
Aquí está el script que Brianko escribió:
#! /usr/bin/perl # # blurAddys.pl - Obfuscate IP addresses in a file # # cat some.log | blurAddys.pl > some_blurred.log # ##################################################################### use strict; while(<STDIN>) { s/\d{1,3}(\.|-)\d{1,3}(\.|-)\d{1,3}(\.|-)\d{1,3}/XX$1XX$2XX$3XX/g; print $_; }
También se puede añadir esto al script, que es lo que yo usaba antes:
#!/bin/sh date=`date +%d` current=`date +%d%m%y` if [ "$(echo $date)" = 01 ];then tar cfvz /var/log/named/named.$current.tar.gz /var/log/named/*.log.* rm /var/log/named/*.log.* fi cat /var/lib/named/var/log/named.log | /usr/local/bin/blurAddys.pl > /var/log/named/named.log.$current rm /var/lib/named/var/log/named.log touch /var/lib/named/var/log/named.log chown bind:bind /var/lib/named/var/log/named.log /etc/init.d/bind9 restart
Yo suelo usar el metodo logrotate para limpiar los logs. Uso syslog-ng, de forma que añado la siguiente entrada en /etc/logrotate.d/syslog-ng
/var/lib/named/var/log/named-query.log { rotate 7 daily compress prerotate /usr/local/bin/blurAddys.pl endscript }
Espero que esta guia te haya sido de ayuda para configurar tu servidor Tier-1 y tenerlo listo para tu nuevo TLD.
Recuerda seguir las instrucciones para crear un TLD si no tienes tu TLD aprobado para uso en OpenNIC por voto de los miembros: CreatingNewTLDsES Proponiendo y creando nuevos TLDs via OpenNIC
- Este documento solo existe en el wiki.