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.