DNS Maestro Primario para una LAN en Debian 6.0 (III)

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

 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!



Ingeniero Termo Energético de profesión. Administrador de Redes desde hace ya varios años. Programador en Visual FoxPro. Debianero de Corazón, y "OldFashion Man". Contacto: federicotoujague@gmail.com / +53 5 5005735

7 comentarios

  1.   st0rmt4il dijo

    Gracias hombre!

    Hoy dia dificilmente ver posts de esta calidad en internet!

    Saludos!

    1.    fico dijo

      Muchas gracias por tu comentario.. Es un placer leer cosas así.. 😉

  2.   dasht0 dijo

    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

    1.    federico dijo

      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.

      1.    dasht0 dijo

        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

  3.   elpapineo dijo

    El ejecutar:
    named-checkconf -z
    Me aperece:
    /etc/bind/named.conf.options:30: unknown option ‘controls’

    1.    elpapineo dijo

      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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.