Mantener BIND actualizado.
Versión 9.x
Obteniendo información:
nslookup www.ejemplo.com
Server: localhost
Address: 127.0.0.1
Name: www.ejemplo.com
Address: 172.26.105.20
host www.ejemplo.com
www.ejemplo.com has adress 172.26.105.20
www.ejemplo.com mail is handled (pri=10) by mailhost.ejemplo.com
www.ejemplo.com mail is handled (pri=20) by mailbackup.ejemplo.com
Campos de información:
Tipos de registros:
SOA: Autoridad de la zona: Incluye la dirección de correo del administrador del DNS y varios números que señalan los tiempos de actualización, de caché y transferencia.
A: Registros de direcciones: La/s dirección/es que pertenecen a un cierto nombre dé máquina.
CNAME: Nombre cánonico: Para un cierto nombre de máquina, una referencia a otro nombre de máquina, en vez de a una dirección IP. Algo así como un enlace simbólico. Yo a veces le llamo alias, ejemplo, CNAME apuntando a un A.
PTR: Registro Puntero: El nombre de máquina asociado a una dirección IP.
HINFO: Información de una máquina: La arquitectura y el sistema operativo de esa máquina.
TXT: Texto descriptivo: Otro texto descriptivo sobre esa máquina, normalmente su propósito y su ubicación.
RP: Persona responsable: La dirección de correo de la persona responsable de es máquina.
Los registros HINFO y TXT no son necesarios.
Transferencia de zonas
Aqui empieza lo divertido.
Editar el fichero named.conf
Añadiendo un dns secundario (esclavo)
zone "elhacker.net" {
type slave; file "slave/elhacker.net";
masters { 217.125.24.22; 217.125.24.23; };
Los servidores dns secundarios deben poder realizar transferencias de zonas con el servidor primario, de tal forma que mantengan toda su información actualizada. SIN EMBARGO, NO DEBERIAS PERMITIR A NINGUNA OTRA MAQUINA REALIZAR ESTE TIPO DE TRANSFERNCIAS.
Veamos esto ultimamente.
Si quieres permitir allow-transfers, hazlo bien almenos:
options {
...
allow-transfers {217.125.24.22;};
....
}
zone "elhacker.net"{
type master;
file "master/elhacker.net";
allow-transfers {192.168.14.20; 192.168.80.29;};
};
zone "elhacker.info"{
type master;
file "master/elhacker.net"
};
zone "elhacker.dot" {
type slave;
masters { 10.14.102.18; };
file "slave/elhacker.dot";
allow-transfers { none; };
}
Con esta configuracón, el dominio elhacker.INFO únicamente permitiría solicitudes de la transferncias de zona desde 217.125.24.22 (debido a las opciones globales). El dominio elhacker.net puede ser solo transferido por 192.168 etc y ninguna otra maquina podria hacer una transferencia del dominio elhacker.dot
Búsquedas inversas.
Las búsquedas inversas son una forma de obtener nombres de máquina partiendo de direcciones IP.
ftpserver IN CNAME 217-125-24-22
217-125-24-22 IN A 217.125.24.22
$ORIGIN 105.26.172.IN-ADDR.ARPA
85 IN PTR 217-125-24-22.elhacker.net
Asegurate que:
1.host ftpserver.elhacker.net
ftpserver.elhacker.net is a nickname for host 217-125-24-22.elhacker.net
host 217-125-24-22 has address 217.125.24.22
2. host 217-125-24-22.elhacker.net
217-125-24-22.elhacker.net has address 217.125.24.22
3. host 217.125.24.22
217-125-24-22.elhacker.net has address 217.125.24.22
Corrupción de la caché de BIND
Solo ocurre con versiones viejas de BIND.
Pero lo mejor es utilizar para tu servicio de nombres dos clases: uno interno y otro externo.
Si es posible ejecuta estos dos servidores de nombres de maquinas en maquinas distintas.
Listas de acceso ACL en etc/named.conf
//servidor de nombres interno
acl "red-iterna"{
localhost; // importante!
10.0.0.0/24; // nuestas direcciones internas traducidas
};
Luego aplica esta lista de acceso añadiendo el siguiente bloque "options" en el fichero /etc/named.conf
//servidor de nombres interno
options{
allow-query { red-interna };
};
Caché:
//servidor de nombres externo
options
recursion no; // no responderás a consultas de zonas que no controles!
};
Si tienes varios servidores de nombres externos (deberia ser asi)
//servidor de nombres externo
acl "nuestros-servidores-dns"{
172.16.1.2 // ns1.example.com
172.16.2.2 // ns2.example.com
192.168.5.3 // ns3.example.com
zone "elhacker.net" { // nuestro nombre de dominio)
type master;
file "master/elhacker.net";
allow-query{
any; //todos pueden preguntar a este dominio!
};
allow-transfer{
nuestros-servidores-dns; // pero solo los servidores pueden transferir zonas
};
};
DNS Spoof.
Utilizar DNS Security (DNSSEC) que permite a los servidores DNS firmar sus respuestas.
Información sacada del libro:
"Hackers en Linux" de la editorial Mc-Graw Hill