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

Continuamos con nuestra serie de artículos y en éste trataremos los siguientes aspectos:

  • Instalación
  • Directorios y archivos principales

Antes de continuar, les recomendamos no dejar de leer:

Instalación

En una Consola y como el usuario root instalamos el bind9:

aptitude install bind9

También debemos instalar el paquete dnsutils el cual tiene las herramientas necesarias para hacer consultas DNS y diagnosticar el funcionamiento:

aptitude install dnsutils

Si desean consultar la documentación que viene en el repositorio:

aptitude install bind9-doc

La documentación se almacenará en el directorio /usr/share/doc/bind9-doc/arm y el archivo índice o de la Tabla de Contenidos es el Bv9ARM.html. Para abrirlo ejecute:

firefox /usr/share/doc/bind9-doc/arm/Bv9ARM.html

Cuando instalamos el bind9 en Debian, también lo hace el paquete bind9utils el cual nos aporta varias herramientas muy útiles para mantener una instalación de trabajo de un BIND. Entre ellas encontraremos rndc, named-checkconf y named-checkzone. Por otra parte, el paquete dnsutils aporta toda una serie de programas clientes del BIND entre los que estarán el dig y el nslookup. Todas estas herramientas o comandos las usaremos en los artículos siguientes.

Para conocer todos los programas de cada paquete debemos ejecutar como el usuario root:

dpkg -L bind9utils
dpkg -L dnsutils

O ir al Synaptic, buscar el paquete, y ver cuales son los archivos instalados. Sobre todo los que se instalan en las carpetas /usr/bin o /usr/sbin.

Si queremos conocer más sobre cómo utilizar cada herramienta o programa instalado, debemos ejecutar:

man <nombre del programa>

Directorios y archivos principales

Cuando instalamos Debian se crea el archivo /etc/resolv.conf. Este archivo o “Fichero de configuración del servicio resolver”, contiene varias opciones que por defecto son el nombre del dominio y la dirección IP del servidor DNS declarado durante la instalación. Como el contenido de la ayuda del archivo viene en español y es muy claro, recomendamos la lean mediante el comando man resolv.conf.

Después de instalado el bind9 en Squeeze, se crean al menos los directorios siguientes:

/etc/bind
/var/cache/bind
/var/lib/bind

En el directorio /etc/bind nos encontramos, entre otros, con los siguientes archivos de la configuración:

named.conf
named.conf.options
named.conf.default-zones
named.conf.local
rndc.key

En el directorio /var/cache/bind crearemos los archivos de las Zonas Locales las cuales trataremos posteriormente. Por curiosidad ejecuten en una Consola los siguientes comandos como el usuario root:

ls -l /etc/bind
ls -l /var/cache/bind

Por supuesto que el último directorio no contendrá nada, pues aun no hemos creado ninguna Zona Local.

El dividir la configuración del BIND en varios archivos se hace por comodidad y claridad. Cada archivo tiene una función específica como veremos a continuación:

named.conf: Archivo principal de configuración. En él se incluyen los archivosnamed.conf.optionsnamed.conf.local y named.conf.default-zones.

named.conf.options: Opciones generales del servicio DNS. La directiva: directory “/var/cache/bind” le indicará al bind9 donde buscar los archivos de las Zonas Locales creadas. También declaramos aquí los servidores “Forwarders” o en una traducción aproximada “Adelantadores” hasta un número máximo de 3, los cuales no son más que servidores DNS externos que podemos consultar desde nuestra red (a través de un Firewall por supuesto) que responderán a las preguntas o solicitudes que nuestro DNS local no sea capaz de responder.

Por ejemplo, si estamos configurando un DNS para la LAN192.168.10.0/24, y queremos que uno de nuestros Forwarders sea un Servidor de Nombres de la UCI, debemos declarar la directiva  forwarders { 200.55.140.178; }; dirección IP que corresponde al servidor ns1.uci.cu.

De esta forma podremos consultarle a nuestro servidor DNS local cual es la dirección IP del host yahoo.es (el cual evidentemente no está en nuestra LAN), ya que nuestro DNS le preguntará al de la UCI si el sabe cual es la dirección IP de yahoo.es, y luego nos dará a nosotros un resultado sea satisfactorio o no. También y en el propio archivo named.conf.option declararemos otros aspectos importantes de la configuración como veremos más adelante.

named.conf.default-zones: Como su nombre lo indica son las Zonas por Defecto. Aquí se le configura al BIND el nombre del archivo que contiene la información de los Servidores Raíces o Root Servers necesarios para iniciar la caché DNS, más concretamente el archivodb.root. También se le indica al BIND que tenga plena Autoridad (que sea Autoritario) en la resolución de nombres para el localhost, tanto en consultas Directas como Inversas, y lo mismo para las zonas “Broadcast”.

named.conf.local: Archivo donde declaramos la configuración local de nuestro servidor DNS mediante el nombre de cada una de las Zonas Locales,  y cuales serán los Archivos de Registros DNS que mapearan los nombres de los equipos conectados a nuestra LAN con su dirección IP y viceversa.

rndc.key: Archivo generado que contiene la Clave para controlar el BIND. Mediante la utilidad de control del servidor BIND rndc, seremos capaces de recargar la configuración del DNS sin necesidad de reiniciarlo con el comando rndc reload. Muy útil cuando hacemos cambios en los archivos de las Zonas Locales.

En Debian los archivos de las Zonas Locales se pueden ubicar también en /var/lib/bind; mientras que en otras distribuciones como Red Hat y CentOS normalmente se ubican en  /var/lib/named u otros directorios en dependencia del grado de seguridad implementado.

Nosotros seleccionamos el directorio /var/cache/bind pues es el que sugiere por defecto Debian en el archivo named.conf.options. Podemos emplear cualquier otro directorio siempre y cuando le indiquemos al bind9 donde buscar los archivos de las zonas, o le demos el camino absoluto de cada una de ellas en el archivo named.conf.local. Es muy saludable utilizar los directorios recomendados por la distribución que estemos usando.

Está fuera del alcance de este artículo el tratar sobre la seguridad adicional que implica el crear una Jaula o “Chroot” para el BIND. También lo está el tema de la seguridad mediante el contexto SELinux. Aquellos que necesiten implementar tales características, deben acudir a manuales o a literatura especializada. Recuerden que el paquete de documentación bind9-doc se instala en el directorio /usr/share/doc/bind9-doc.

Bueno Señores, hasta aquí la 2da Parte. No queremos extendernos más en un solo artículo debido a las buenas recomendaciones de nuestro Jefe. ¡Al fin! entraremos en el meollo de la Configuración y Pruebas del BIND… en el próximo capítulo.


Deja tu 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.

  1.   Carlos Andres dijo

    felicidades muy buen articulo!

    1.    fico dijo

      Muchas gracias..

  2.   Enrique dijo

    Es importante de menos esto por seguridad: No dejar un dns abierto (open resolver)

    Referencias:
    1) http://www.google.com/search?hl=en&q=spamhaus+ataque
    2) http://www.hackplayers.com/2013/03/el-ataque-ddos-spamhaus-y-la-amenaza-de-dns-abiertos.html
    cito:
    «…Por ejemplo, Open DNS Resolver Project (openresolverproject.org), el esfuerzo de un grupo de expertos en seguridad para arreglar esto, estima que actualmente existen 27 millones de «Open Recursive Resolvers», y 25 millones de ellos son una amenaza significativa, latente, esperando a desatar su furia de nuevo contra un nuevo objetivo..»
    Saludos

  3.   eVeR dijo

    Muy bueno meter a la gente adentro de un servicio tan importante hoy en día como es DNS.
    Lo que sí, si puedo señalar algo, es tu lamentable traducción de «forwarders», que parece como si se hubiera sacado de google translate. La traducción correcta es «Servidores de reenvío» o «Reenviadores».
    Todo lo demás, genial.
    Saludos

    1.    federico dijo

      Problema de semántica. Sí Usted Reenvía una petición a otro para obtener una Respuesta, no está Adelantado una solicitud hacia otro nivel. Creí que el mejor tratamiento en Español Cubano, era el de Adelantadores porque me refería a Pasar o Adelantar una pregunta que yo (el DNS local) no podía responder. Simple. Más fácil me hubiera sido escribir el artículo en Inglés. No obstante, aclaro siempre lo de Mis Traducciones. Gracias por su oportuno comentario.

  4.   st0rmt4il dijo

    De lujo ;)!

    Saludos!

  5.   jecale47 dijo

    ¿Y para OpenSUSE?

    1.    federico dijo

      CREO sirve para cualquier distro. Varía la ubicación de los archivos de las zonas, creo yo. no?

  6.   fico dijo

    Gracias a todos por comentar.. y acepto de buena ganas sus sugerencias.. 😉