Es tremendo esfuerzo reducir en 5 pequeños artículos los Conocimientos Previos, la Instalación, la Configuración, y la Creación de las Zonas y Comprobaciones de un BIND, de forma que pueda ser entendido por la mayor cantidad de lectores el cual es nuestro propósito fundamental.
Los que hayan tenido la paciencia de leer con cuidado la 1era y 2da parte de este artículo, están preparados para continuar con la configuración y puesta a punto de un Servidor de Nombre de Dominio para una LAN.
A los Nuevos, y a aquellos que no tengan bien claros los muy resumidos conceptos dados en las partes precedentes, les recomendamos las lean y estudien antes de proseguir. ¡Sospechosos habituales de la Desesperación! hacia atrás si no leyeron cuidadosamente .
Veremos a continuación:
- Datos principales de la LAN
- Configuraciones mínimas del host
- Modificaciones al archivo /etc/resolv.conf
- Modificaciones al archivo /etc/bind/named.conf
- Modificaciones al archivo /etc/bind/named.conf.option
- Modificaciones al archivo /etc/bind/named.conf.local
Índice
Datos principales de la LAN
Nombre del Dominio de la LAN: amigos.cu Subnet de la LAN: 192.168.10.0/255.255.255.0 IP del servidor BIND: 192.168.10.10 Nombre NetBIOS del servidor: ns
Aunque sea evidente, recuerden cambiar los datos anteriores por los suyos propios.
Configuraciones mínimas del host
Muy importante es tener correctamente configurados los archivos /etc/network/interfaces y/etc/hosts para obtener un buen funcionamiento del DNS. Si durante la instalación se declararon todos los datos, no será necesaria ninguna modificación. Los contenidos de cada uno de ellos deben ser los siguientes:
# contenido del archivo /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.10.10 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.10.2 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.10.10 dns-search amigos.cu # contenido del /etc/hosts 127.0.0.1 localhost 192.168.10.10 ns.amigos.cu ns # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Modificaciones al archivo /etc/resolv.conf
Para que nuestras consultas y comprobaciones funcionen correctamente es necesario declarar en la configuración local del host, cual será nuestro dominio de búsqueda y cual será nuestro DNS local. Sin los parámetros anteriores como mínimo, cualquier consulta DNS será fallida. Y éste es un error en el cual caen muchos principiantes. Por tanto, editemos el archivo /etc/resolv.conf y lo dejamos con el siguiente contenido:
# contenido de /etc/resolv.conf search amigos.cu nameserver 192.168.10.10
En el equipo donde tenemos instalado el servidor DNS podemos escribir:
search amigos.cu nameserver 127.0.0.1
En el contenido anterior, la declaración nameserver 127.0.0.1, indica que las consultas serán hechas al localhost.
Después que tengamos nuestro BIND correctamente configurado podemos realizar cualquier consulta DNS desde nuestro host, sea el propio servidor bind9 u otro conectado a la red y que pertenezca a la misma subnet y tenga la misma máscara de red. Para conocer más acerca del archivo ejecuten man resolv.conf.
Modificaciones al archivo /etc/bind/named.conf
Para limitar las consultas a nuestro BIND de forma que respondan solamente a nuestra subnet y evitar un ataque Spoofing, declaramos en el archivo named.conf la Lista de Control de Acceso o ACL (Access Control List) y la denominamos mired. El archivonamed.conf debe quedar de la forma siguiente:
// /etc/bind/named.conf // This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local // // Los comentarios en español son nuestros // Los originales los dejamos en inglés // OJO con el copiar y pegar // NO DEJEN ESPACIOS EN BLANCO AL FINAL DE CADA LINEA // // Lista de Control de Acceso: // Permitirá consultas desde el dominio local y de nuestra subnet // En el archivo incluido named.conf.options haremos referencia a ella. acl mired { 127.0.0.0/8; 192.168.10.0/24; }; include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; // fin del archivo /etc/bind/named.conf
Comprobemos la configuración del BIND hasta ahora y reiniciemos el servicio:
named-checkconf -z service bind9 restart
Modificaciones al archivo /etc/bind/named.conf.options
En la primera sección “options“, sólo declararemos los Forwarders, y quienes serán los que podrán consultar nuestro BIND. Luego declaramos la Clave o key mediante la cual podemos controlar al bind9, y por último desde que host podemos controlarlo. Para conocer cual es la clave o key, debemos hacer cat /etc/bind/rndc.key. Copiamos la salida y la pegamos en el archivo named.conf.options. Al final, nuestro archivo debe quedar así:
// /etc/bind/named.conf.options options { // OJO CON EL COPIAR Y PEGAR, POR FAVOR... // Directorio por defecto para ubicar nuestros archivos de Zonas directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // 0.0.0.0; // } // Los Forwarders. No tengo mejor traducción // Las direcciones son de servidores de ceniai.net.cu // Si NO Tiene salida a la Internet NO es necesario // declararlos, a menos que tenga una LAN más compleja // con servidores DNS que actuen como Forwarders fuera // del rango de direcciones IP de su subnet. En ese caso // debe declarar las IP(s) de esos servidores. // Las consultas a Forwarders son en Cascada. forwarders { 169.158.128.136; 169.158.128.88; }; // En una LAN bien configurada, TODAS las consultas DNS // se deben hacer al servidor local DNS de esa LAN, // NO a servidores externos a la LAN. // Máxime cuando se tiene acceso a Internet, // sea Nacional o Internacional. Para eso // declaramos los Forwarders auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; // Proteger contra el spoofing allow-query { mired; }; }; // Contenido del archivo /etc/bind/rndc-key // obtenido mediante cat /etc/bind/rndc-key // Recuerden cambiarlo si regeneramos la clave key "rndc-key" { algorithm hmac-md5; secret "dlOFESXTp2wYLa86vQNU6w=="; }; // Desde cual host controlaremos y mediante cual clave controls { inet 127.0.0.1 allow { localhost; } keys { rndc-key; }; }; // fin archivo /etc/bind/named.conf.options
Comprobemos la configuración del BIND hasta ahora y reiniciemos el servicio:
named-checkconf -z service bind9 restart
Hemos decidido incluir como // Comentarios los aspectos fundamentales que pueden servir de referencia para futuras consultas.
El hecho de declarar los Forwarders, convierte a nuestro servidor BIND Local en servidor Caché manteniendo su funcionalidad de Maestro Primario. Cuando le preguntemos por un host o por un dominio externo, la respuesta -de ser positiva- la almacenará en su caché, de forma que cuando le preguntemos nuevamente por el mismo host o por el mismo dominio externo, obtengamos una rápida respuesta al no consultar nuevamente a DNSs externos.
Modificaciones al archivo /etc/bind/named.conf.local
En éste archivo declaramos las zonas locales de nuestro dominio. Debemos incluir las Zonas Directa e Inversa como mínimo. Recuerden que en el archivo de configuración/etc/bind/named.conf.options declaramos en cual directorio alojaremos los archivos de las Zonas mediante la directiva directory. Al final, el archivo debe quedar de la siguiente forma:
// /etc/bind/named.conf.local // // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; // Los nombres de los archivos de cada zona, son a // gusto del consumidor. Escogimos amigos.cu.hosts // y 192.168.10.rev por que nos dan claridad de sus // contenidos. No hay más misterio // // Los Nombres de las Zonas NO SON ARBITRARIOS // y corresponderán al nombre de nuestro dominio // y a la subnet de la LAN // Zona Principal Maestra: tipo "Directa" zone "amigos.cu" { type master; file "amigos.cu.hosts"; }; // Zona Principal Maestra: tipo "Inversa" zone "10.168.192.in-addr.arpa" { type master; file "192.168.10.rev"; }; // Fin del archivo named.conf.local
Para comprobar la configuración del BIND hasta ahora:
named-checkconf -z
El comando anterior nos devolverá un error hasta tanto no existan los archivos de las zonas. Lo fundamental es que nos avisa de que las Zonas declaradas en named.conf.local no serán cargadas, pues los archivos de registros DNS simplemente no existen, lo cual es cierto por ahora. Podemos seguir adelante.
Reiniciemos el servicio para que se tenga en cuenta los cambios:
service bind9 restart
Como no queremos hacer muy largo cada post, abordaremos el tema de la creación de los archivos de las Zonas Locales en la próxima 4ta parte. ¡Hasta entonces amigos!
7 comentarios, deja el tuyo
Gracias hombre!
Hoy dia dificilmente ver posts de esta calidad en internet!
Saludos!
Muchas gracias por tu comentario.. Es un placer leer cosas así.. 😉
Excelente artículo!
Gracias fico, Elav, KZ, en fin… DesdeLinux por existir
Colectivo, podría implementarse algún plugin que permita descargar los artículos como pdf (estilo HumanOS)
Saludos
Dasht
Gracias a TODOS por sus comentarios. Aprendemos TODOS de ellos.
La descarga de los artículos en PDF no incluye los comentarios de los amigos y colegas, los cuales complementan el post y son Muy Útiles. Dar una Guía sin comentarios es prácticamente imposible dada la amplitud del tema tratado. UNIX/Linux es extremadamente amplio para obviar las experiencias de todos.
Excelentes artículos!
Está claro fico que los comentarios complementan la información de los artículos, incluso sugieren cosas que pueden quedar o que podrían añadirse, pero mantengo mi idea que sería idela si el articulo se pudiera guardar como pdf, al menos para mi
Un abrazo desde Cuba y continúen echándole ganas
El ejecutar:
named-checkconf -z
Me aperece:
/etc/bind/named.conf.options:30: unknown option ‘controls’
Me respondo yo mismo: hay que colocar la sección controls fuera de la sección options.
También quisiera aportar algo: si en vez de copiar y pegar en el archivo named.conf.options
key «rndc-key» {
algorithm hmac-md5;
secret «dlOFESXTp2wYLa86vQNU6w==»;
};
Hacemos un:
include «/etc/bind/rndc.key»;
en el archivo named.conf creo que también funciona.
Saludos.