Configuración de un servidor
DNS autorizado
Operaciones y Seguridad
de DNS Avanzado
Repaso
● DNS = Base de datos distribuída
● El resolver le pregunta al servidor recursivo
● El recursivo atraviesa el árbol de delegación
para encontrar el servidor autorizado para
entregar la información en cuestión
● La mala configuración de los servidores
autorizados puede causar que los dominios
no estén disponibles
Replicación en DNS
● Para cada dominio, necesitamos más de un
servidor autorizado para ofrecer la misma
información (RFC 2182)
● Los datos se introducen en un servidor
(maestro) y se replican en otros (esclavos)
● El mundo exterior no puede ver quién es el
maestro y cuáles son los esclavos
– Los récords NS se entregan ordenados al azar
para distribuir la carga
● Se solía hablar de “primarios” y
“secundarios”
Los esclavos se conectan
al maestro para copiar
la información
● El maestro no “empuja” los datos a los
esclavos
Slave
Master
Slave
Cuándo se hacen las copias?
● Los esclavos interrogan al maestro
periódicamente – ésto es el "Intervalo de
actualización (refresh interval)" – para
obtener actualizaciones
– Originalmente éste era el único mecanismo
● El maestro también puede notificar a los
esclavos cuando hay cambios
– Las actualizaciones se sincronizan más rápido
● La notificación no es confiable (la red puede
perder un paquete) así que aún es necesario
interrogar periódicamente
Números de serie
● Toda zona tiene un número de serie
● El esclavo sólo iniciará la copia cuando este
número AUMENTA
– Petición periódica sobre UDP
– Si hay un número mayor, iniciar transferencia
sobre TCP
● Es su responsabilidad incrementar el número
de serie con cada cambio. De lo contrario
habrá inconsistencia con los datos en los
esclavos
Números de serie
● Toda zona tiene un número de serie
● El esclavo sólo iniciará la copia cuando este
número AUMENTA
– Petición periódica sobre UDP
– Si hay un número mayor, iniciar transferencia
sobre TCP
● Es su responsabilidad incrementar el número
de serie con cada cambio. De lo contrario
habrá inconsistencia con los datos en los
esclavos
Formato recomendado:
YYYYMMDDNN
● YYYY = año
● MM = mes (01-12)
● DD = día (01-31)
● NN = Número de cambio en el día (00-99)
– e.g. Si cambia el fichero el 5 de marzo de 2004,
el número de serie será 2004030500. Si lo hace
de nuevo el mismo día, será 2004030501.
Número de serie: Peligro #1
● Si por error usted decrementa el número, los
esclavos nunca actualizarán hasta que el
número sea mayor que el valor anterior
● En el RFC1912, sección 3.1 se explica un
método para resolver este problema
● En el peor de los casos, puede contactar a
los administradores de los esclavos y
pedirles que borren la copia de la zona
Número de serie: Peligro #2
● # Serie es un entero de 32 bits sin signo
● Rango: 0 a 4,294,967,295
● Cualquier valor mayor que éste será
truncado en silencio
● ej. 20040305000 (fíjese en el dígito extra)
= 4AA7EC968 (hex)
= AA7EC968 (32 bits)
= 2860435816
● Si comete este error, y luego lo corrige, el
número de serie habrá decrementado
Configuración del maestro
● /etc/namedb/named.conf apunta al fichero de
zona (creado manualmente)
● Elija un nombre y lugar apropiado
– ej. /etc/namedb/master/tiscali.co.uk
– o /etc/namedb/master/uk.co.tiscali
zone "example.com" {
type master;
file "master/example.com";
allow-transfer { 192.188.58.126;
192.188.58.2; };
};
Configuración del esclavo
● named.conf hace referencia a la IP del
maestro y el lugar donde se guardará la copia
de la zona
● Las zonas esclavas se copian
automáticamente
● No las edite!
zone "example.com" {
type slave;
masters { 192.188.58.126; };
file "slave/example.com";
allow-transfer { none; };
};
Maestro y Esclavo
● Es perfectamente válido que un servidor sea
maestro para algunas zonas y esclavo para
otras
● Por ello es buena idea mantener las zonas
en directorios separados
– /etc/namedb/master/
– /etc/namedb/slave/
● (este directorio slave debe tener permisos adecuados
para que el demonio pueda guardar la zona)
allow-transfer { ... }
● Una máquina externa puede solicitar la
transferencia de una zona completa
● Usted puede controlar qué sistemas pueden
obtener (transfer) una copia de la zona.
● Por defecto, sólo los servidores listados en la
zona (NS) pueden
● Puede configurar un valor global por defecto,
y especificar valores por zona si quiere
options {
allow-transfer { 127.0.0.1; };
};
Estructura de un fichero de
zona
● Opciones globales
– $TTL 1d
– Configura el TTL por defecto para todos los
récords
● Record SOA
● Records NS
– "Start Of Authority" – Inicio de Autoridad
– Información pertinente a la zona completa
– Lista de todos los servidores de la zona,
maestros y esclavos
● Otros Records
– Los datos que usted quiere publicar
Formato de un record
www 3600 IN A 212.74.112.80
Domain TTL Class Type Data
● Uno por línea (excepto el SOA, que puede
extenderse a varias líneas)
● Si omite el nombre de dominio, es el mismo de la
línea anterior
● Abreviaciones de TTL: ej. 60s, 30m, 4h, 1w2d
● Si omite el TTL, se usará el valor por defecto $TTL
● Si omite la clase, se usa IN
● El tipo de record y el valor no se pueden omitir
● Comentarios con PUNTO-Y-COMA (;)
Atajos
● Si el nombre de dominio no termina en
punto, se añade el dominio de la zona
misma ("origin")
● El nombre "@" significa el nombre del
dominio mismo
● ej. en el fichero para example.com:
– @ significa example.com.
– www significa www.example.com.
Si escribe esto...
$TTL 1d
@ SOA ( ... )
NS ns0
NS ns0.as9105.net.
; Main webserver
www A 212.74.112.80
MX 10 mail
… se convierte en
example.com. 86400 IN SOA ( ... )
example.com. 86400 IN NS ns0.example.com.
example.com. 86400 IN NS ns0.as9105.net.
www.example.com. 86400 IN A 212.74.112.80
www.example.com. 86400 IN MX 10 mail.example.com.
Formato del record SOA
$TTL 1d
@ 1h IN SOA ns1.example.net.
[email protected]. (
2004030300 ; Serial
8h ; Refresh
1h ; Retry
4w ; Expire
1h ) ; Negative
IN NS ns1.example.net.
IN NS ns2.example.net.
IN NS ns1.othernetwork.com.
Formato del record SOA
● ns1.example.net.
– Nombre del servidor maestro
●
[email protected].
– E-mail de la persona responsable, terminado en
punto.
– En versiones antiguas "@" se cambiaba por “.”
● Número de serie
● Intervalo de actualización (refresh)
– Con qué frecuencia el esclavo debe revisar el
número de serie del maestro
● Intervalo de reintento (retry)
– Con qué frecuencia reintentar si el servidor
maestro no responde
Formato del record SOA
● Tiempo de caducidad (expiry)
– Si el esclavo no puede comunicarse con el
maestro durante este intervalo, debe borrar su
copia de la zona
● Negativo / Mínimo
– Versiones antiguas interpretaban éste como el
valor mínimo del TTL
– Ahora se usa para la memoria de respuestas
negativas: por cuanto tiempo puede recordarse
la no-existencia de un récord
● RIPE-203 tiene varlores recomendados
– http://www.ripe.net/ripe/docs/dns-soa.html
Formato de los récords NS
● Lista de todos los servidores de la zona -
maestro y esclavo(s)
● Debe ser un NOMBRE, no una IP
$TTL 1d
@ 1h IN SOA ns1.example.net. brian.nsrc.org. (
2004030300 ; Serial
8h ; Refresh
1h ; Retry
4w ; Expire
1h ) ; Negative
IN NS ns1.example.net.
IN NS ns2.example.net.
IN NS ns1.othernetwork.com.
Formato de otros récords
● IN A 1.2.3.4
● IN MX 10 mailhost.example.com.
– Este número es un "valor de preferencia". El
correo se enviará al servidor con menor valor
MX
– Debe usarse NOMBRE y no IP
● IN CNAME host.example.com.
● IN PTR host.example.com.
● IN TXT "cualquier cosa"
Cuando agregue o cambie una
zona:
● Recuerde incrementar el número de serie!
● named-checkzone example.com \
/etc/namedb/master/example.com
– Disponible en BIND 9
– Detecta errores de sintaxis; corríjalos!
● named-checkconf
– Detecta errores en named.conf
● rndc reload
– o: rndc reload example.com
● tail /var/log/messages
Estas comprobaciones son
ESENCIALES
● Si tiene un error en named.conf o en un
fichero de zona, named quizá continuará su
ejecución pero no será autorizado para la(s)
zona(s)
● Se convertirá en un “lame” para la zona sin
saberlo
● Los esclavos no serán capaces de
comunicarse con el maestro
● En algún momento (ej. 4 semanas después)
la zona caducará en los esclavos
● Su dominio dejará de ser visible
Otras comprobaciones
● dig +norec @x.x.x.x example.com. soa
– Compruebe el bit AA
– Repita para el maestro y todos los esclavos
– Revise que todos los números de serie
corresponden
● dig @x.x.x.x example.com. axfr
– "Authority Transfer"
– Solicitar una copia completa de la zona sobre
TCP, igual que hacen los esclavos
– Sólo funcionará si su dirección IP está en la
sección allow-transfer {...}
Ahora tiene servidores
autorizados en operación!
● Pero nada de esto tendrá utilidad hasta que
tenga la delegación del dominio superior
● O sea, ellos colocan los récords NS en su
dominio, apuntando a los servidores de
usted
● Usted también ha colocado los récords NS
en su zona
● Estos dos conjuntos deberían concordar
Preguntas?
?
Los diez errores más comunes
● Todos los administradores de servidores
autorizados deberían leer el RFC 1912
– Common DNS Operational and Configuration
● Y también el RFC 2182
– Selecti
Comentarios de: Configuración de un servidor DNS autorizado (0)
No hay comentarios