DNS Maestro Primario para una LAN en Debian 6.0 (V) y final

Los que siguieron la 1era2da3era y 4ta parte de éste artículo y las consultas hechas a su BIND devolvieron resultados satisfactorios, ya son expertos en el tema.:-) Y sin más dilación entremos en la última parte:

  • Creación del archivo de la Zona Principal Maestra del tipo “Inversa” 10.168.192.in-addr.arpa
  • Solución de problemas
  • Resumen

Creación del archivo de la Zona Principal Maestra del tipo “Inversa” 10.168.192.in-addr.arpa

El nombre de la zona se las trae, ¿no?. Y es que las Zonas Inversas son obligatorias para tener una resolución de nombres correcta acorde a las normas de Internet. No nos queda más remedio que crear la correspondiente a nuestro dominio. Para ello usamos como plantilla el archivo /etc/bind/db.127:

cp /etc/bind/db.127 /var/cache/bind/192.168.10.rev

Editamos el archivo /var/cache/bind/192.168.10.rev y lo dejamos así:

; /var/cache/bind/192.168.10.rev
;
; BIND reverse data file for master zone 10.168.192.in-addr.arpa
; Archivos de datos del BIND para la Zona Maestra (Inversa) 10.168.192.in-addr.arpa
;
$TTL	604800
@	IN	SOA	ns.amigos.cu. root.amigos.cu. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.
10	IN	PTR	ns.amigos.cu.
1	IN	PTR	gandalf.amigos.cu.
9	IN	PTR	mail.amigos.cu.
20	IN	PTR	web.amigos.cu.
100	IN	PTR	fedex.amigos.cu.
; podemos escribir también la dirección IP completa. Ej:
; 192.168.10.1   IN	PTR	gandalf.amigos.cu.
  • Observen como en éste caso hemos dejado los tiempos en segundos tal y como se crea por defecto cuando se instala el bind9. Funciona igual. Son los mismos tiempos que los indicados en el archivo amigos.cu.host. Ante la duda, compruebe.
  • Observen además que sólo declaramos los registros inversos de los hosts que tienen una IP asignada o “real” en nuestra LAN, y que la identifica de forma unívoca.
  • Recuerden actualizar el archivo de la Zona Inversa con TODAS las direcciones IP correctas declaradas en la Zona Directa.
  • Recuerden incrementar el Número de Serie de la Zona cada vez que modifiquen el archivo y antes de reiniciar el BIND.

Comprobemos la zona recién creada:

named-checkzone 10.168.192.in-addr.arpa /var/cache/bind/192.168.10.rev

Comprobamos la configuración:

named-checkconf -z
named-checkconf -p

Si todo salió OK, reiniciamos el servicio:

service bind9 restart

En lo adelante, cada vez que modifiquemos los archivos de las zonas, sólo debemos ejecutar:

rndc reload

Para eso declaramos la clave en /etc/bind/named.conf.options, ¿no?

Solución de problemas

Muy importante es el correcto contenido del archivo /etc/resolv.conf como ya vimos en capítulo anterior. Recuerden indicar en él al menos lo siguiente:

search amigos.cu
nameserver 192.168.10.20

Comando dig del paquete dnsutils. En una consola, teclee los comandos precedidos por #:

# dig -x 127.0.0.1
.....
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.    604800    IN    PTR    localhost.
....
# dig -x 192.168.10.9
....
;; ANSWER SECTION:
9.10.168.192.in-addr.arpa. 604800 IN    PTR    mail.amigos.cu.
....
# host gandalf
gandalf.amigos.cu has address 192.168.10.1
# host gandalf.amigos.cu
gandalf.amigos.cu has address 192.168.10.1
# dig gandalf
; <<>> DiG 9.7.2-P3 <<>> gandalf
;; global options: +cmd
;; connection timed out; no servers could be reached
# dig gandalf.amigos.cu
....
;; ANSWER SECTION:
gandalf.amigos.cu.    604800    IN    A    192.168.10.1
....
Sí tienen salida a la Internet Cubana o Global, y los Forwarders están correctamente declarados prueben:
# dig debian.org
....
;; QUESTION SECTION:
;debian.org.            IN    A
;; ANSWER SECTION:
debian.org.        3600    IN    A    86.59.118.148
debian.org.        3600    IN    A    128.31.0.51
....
# host bohemia.cu
bohemia.cu has address 190.6.81.130
# host yahoo.es
yahoo.es has address 77.238.178.122
yahoo.es has address 87.248.120.148
yahoo.es mail is handled by 10 mx-eu.mail.am0.yahoodns.net.
# dig -x 77.238.178.122
;; ANSWER SECTION:
122.178.238.77.in-addr.arpa. 429 IN    PTR    w2.rc.vip.ird.yahoo.com.

…y en general con otros dominios externos a nuestra LAN. Consulte y entérese de cosas interesantes de Internet.

Una de las mejores formas de comprobar el funcionamiento de un servidor bind9, y en general de cualquier otro servicio instalado, es leyendo la salida de los Mensajes del Registro del Sistema mediante el comando tail -f /var/log/syslog ejecutado como el usuarioroot.

Es muy interesante ver la salida de ese comando cuando le hacemos una pregunta a nuestro BIND local sobre un dominio o host externo. En ese caso se nos puede presentar varios escenarios:

  • Sino tenemos acceso a Internet nuestra consulta será fallida.
  • Si tenemos acceso a Internet y NO tenemos declarados Forwarders, lo más probable es que no obtengamos una respuesta.
  • Si tenemos acceso a Internet y tenemos declarados los Forwarders, obtendremos una respuesta ya que ellos se encargarán de consultar al o a los servidores DNS que sean necesarios.

Si estamos trabajando en una LAN Cerrada en la cual es imposible de cualquier forma salir al exterior y no tenemos Forwarders de ningún tipo, podemos eliminar los mensajes de búsqueda de los Servidores Raíces “vaciando” el archivo /etc/bind/db.root. Para ello primero guardamos el archivo con otro nombre y luego borramos todo su contenido. Luego comprobamos la configuración y reiniciamos el servicio:

cp /etc/bind/db.root /etc/bind/db.root.original
cp /dev/null /etc/bind/db.root
named-checkconf -z
named-checkconf -p
service bind9 restart

Resumen

Hasta aquí, colegas, una pequeña introducción al servicio DNS. Lo que hemos hecho hasta ahora nos puede servir perfectamente para nuestra pequeña empresa. También para la casa si creamos máquinas virtuales con diferentes sistemas operativos y diferentes direcciones IP, y no queremos referirnos a ellas por la IP sino por su nombre. Siempre instalo un BIND en el host de mi casa para instalar, configurar y probar servicios que dependen fuertemente del servicio DNS. Hago uso extensivo de Desktops y Servidores virtuales, y no me gusta mantener un archivo /etc/hosts en cada una de las máquinas. Me equivoco demasiado.

Si nunca han instalado y configurado un BIND, por favor, no de desanime si al primer intento le sale algo mal y tenga que empezar desde cero nuevamente. Recomendamos siempre en éstos casos partir de una instalación limpia. ¡Vale la pena intentarlo!

Para aquellos que necesiten de una alta disponibilidad en el servicio de resolución de nombres, la cual se puede lograr mediante la configuración de un servidor Maestro Secundario, recomendamos continúen con nosotros en la próxima aventura: DNS Maestro Secundario para una LAN.

¡Felicidades a los que siguieron todos los artículos y obtuvieron los resultados esperados!


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.   st0rmt4il dijo

    Al fin!.. el post final :D!

    Gracias por compartirlo amigo!

    Saludos!

  2.   Rafael Hernandez dijo

    Muy interesante, tus articulos, tengo un DNS autoritativo montado en un freeBSD para un dominio .edu.mx, de momento me ha funcionado perfecto, pero en el ultimo mes detecte varios ataques, hacia el servidor, ¿cuales serian los metodos de defensa para un DNS expuesto?, y no se si se pueda, tener el master expuesto a internet y un secundario que sirva a una paqueña lan de unos 60 ordenadores, interconectado ambos DNS , o poder definir dos zonas una interna y otra externa, gracias en el master

  3.   PICCORO dijo

    El paquete bind9 de squeeze tiene un problema al funcionar con samba, ya esta disponible una version 9.8.4 en la rama backports de squeeze, la version wheeze no tiene este problema, para lenny venenux.net backportara el paquete.

    Muy buen articulo.

    Este es el unico articulo que realiza todo bien explicado..

    Cabe destacar que el acl para spofing no sirve ya que de igual manera sera inyectado desde la red interna, la solucion seria denegar la redirecciones para los clientes, y crear una acl compleja que impida reasignacion de nombres (algo parecido a dns estatico)

    SUGERENCIA ESPECIAL:

    seria bueno una config extra de como hacer para que el dns filtrara contenido en vez del firewall

    1.    Federico Antonio Valdés Toujague dijo

      Gracias por comentar @PICCORO !!!.
      Declaro al inicio de todos mis artículos que no me considero un especialista. Mucho menos en el tema DNS. Aquí aprendemos todos. Tendré en cuenta tus recomendaciones para cuando instale un DNS cara a Internet y no para una LAN normal y sencilla.

  4.   Frank Davila dijo

    EXCELENTE TUTORIAL!!! Me resulto de gran ayuda ya que acabo de iniciarme en este giro de servidores, todo me funciono OK. Gracias y que sigas publicando tan magnificos tutos!!!

  5.   Jesús Fenández Toledo dijo

    Fico, de nuevo vuelvo a felicitarte por este gran material.

    Yo no soy experto en BIND9, perdóname si me equivoco por el comentario, pero creo que te ha faltado definir la zona para búsquedas inversas en el archivo named.conf.local

    1.    elav dijo

      Es una pena que Fico no pueda responderte en estos momentos..

      1.    Federico Antonio Valdés Toujague dijo

        Saludos y Gracias, Elav, y aquí estoy respondiendo. Como siempre recomiendo que lean despacio… 🙂

    2.    Federico Antonio Valdés Toujague dijo

      En el post: https://blog.desdelinux.net/dns-maestro-primario-para-una-lan-en-debian-6-0-iii/

      Escribo lo siguiente:
      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

  6.   Fabián Valery dijo

    Buenas, muy interesantes tus post sobre dns, me han ayudado a iniciarme sobre el tema, gracias. Aclaro que soy novato al respecto. Pero leyendo su información publicada he observado que se trabaja con direcciones fijas en los host de una red interna. Mi inquietud es ¿como se haría con una red interna con direcciones ip dinámicas, asignadas por un servidor dhcp, para crear los archivos de la zona principal maestra de tipo «directa» e «inversa»?

    Agradeceré la luz que usted pueda dar al respecto de la inquietud planteada. Gracias. F.V.

    1.    Federico A. Valdés Toujague dijo

      Gracias por comentar, @fabian. Puedes consultar los siguientes artículos, los cuales espero te ayuden a implementar una red con direcciones dinámicas:

      https://blog.desdelinux.net/servicio-de-directorio-con-ldap-2-ntp-y-dnsmasq/
      https://blog.desdelinux.net/servicio-de-directorio-con-ldap-3-isc-dhcp-server-y-bind9/

      Saludos