Los que siguieron la 1era, 2da, 3era 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
Índice
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!
11 comentarios, deja el tuyo
Al fin!.. el post final :D!
Gracias por compartirlo amigo!
Saludos!
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
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
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.
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!!!
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
Es una pena que Fico no pueda responderte en estos momentos..
Saludos y Gracias, Elav, y aquí estoy respondiendo. Como siempre recomiendo que lean despacio… 🙂
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
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.
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