Si es un lector habitual de Techglimpse, es posible que haya leído nuestros artículos anteriores sobre DNS, sus tipos, cómo funciona, la diferencia entre servidores autorizados y recursivos. También le mostramos cómo identificar la dirección IP del servidor DNS configurada en sus máquinas con Windows y Linux y cómo analizar la velocidad de varios servidores DNS utilizando la herramienta Benchmarking llamada namebench. Hoy mostraré cómo instalar y configurar Bind en sus máquinas basadas en Linux.
Este tutorial mostrará la configuración básica del servidor DNS usando bind. Bind es un paquete gratuito que le permite configurar el servidor DNS. La configuración básica de bind consumirá 200 MB de su RAM y estará preparado para configurar más cuando el servidor entre en producción (mientras agrega más zonas y cuando el servidor recibe más consultas).
Considere la configuración básica como se muestra a continuación,
One machine for setting up the DNS server - I am going to call this machine as 10.180.8.115.
Dominio o zona de muestra:Techglimpse.com (10.180.3.74) para probar la configuración
Authoritative Name server for techglimpse.com will be called as ns1.techglimpse.com
Los subdominios de muestra de techglimpse.com son ftp, www, mail.
Descargar e instalar Bind
En máquinas basadas en Debian,
apt-get install bind9 dnsutils
En máquinas basadas en CentOs/Fedora,
yum install bind dnsutils
Nota:Bind es el servidor DNS, mientras que dnsutils contiene algunos comandos relacionados con dns para realizar pruebas y solucionar problemas. Por ejemplo, cavar.
Crear un archivo de zona para el dominio
Como dije anteriormente, nuestro dominio de muestra será techglimpse.com. Así que crearemos un archivo de zona para ese dominio. Para ello, vamos a crear un directorio para almacenar los archivos de zona.
cd /var/named mkdir -p zones/master cd zones/master/
Nota:Mi directorio de enlace es '/var/named', sin embargo, esto podría cambiar en su configuración. Por ejemplo, /etc/named, /etc/bind, etc…
Ahora es el momento de crear un archivo de zona para techglimpse.com. La zona se llamará “db.techglimpse.com ” que contendrá registros DNS como A, MX, CNAME, etc…
vi /var/named/zones/master/db.techglimpse.com
Pegue el siguiente código,
; ; BIND data file for techglimpse.com ; $TTL 3h @ IN SOA ns1.techglimpse.com. admin.techglimpse.com. ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 day ; @ IN NS ns1.techglimpse.com. techglimpse.com. IN MX 10 mail.techglimpse.com. techglimpse.com. IN A 10.180.3.74 ns1 IN A 10.180.3.74 www IN CNAME techglimpse.com. mail IN A 10.180.3.74 ftp IN CNAME techglimpse.com.
Nota:Para configurar zonas, debe crear un archivo de zona similar para cada dominio que desee resolver a través de su servidor DNS. Realice los cambios necesarios en el archivo de zona de muestra anterior.
Un vistazo rápido al archivo de zona:
* Registro SOA:se refiere al servidor de nombres autorizado de techglimpse.com como ns1.techglimpse.com y admin.techglimpse.com se refiere a la dirección de correo electrónico del administrador del servidor DNS.
* NS Records:techglimpse.com tiene un servidor de nombres ns1.techglimpse.com. Normalmente, los dominios tendrán al menos dos servidores de nombres para una alta disponibilidad. Para demostración, he nombrado solo un servidor de nombres.
* MX (Mail Exchange):registro de intercambio de correo de techglimpse.com.
* Registro CNAME:nombre canónico.
¡De acuerdo! Lo que sea que hicimos ahora es para el mapeo de nombre a dirección. Ahora vamos a crear una asignación de dirección a nombre.
Configurar la asignación de dirección a nombre:
Hemos configurado la resolución del servidor DNS a la dirección IP cuando se consulta el dominio. Ahora, debemos decirle al servidor que también haga una búsqueda inversa. Es decir, de IP a dominio.
vi /var/named/zones/master/db.10.180.3
Pegue el siguiente código,
; ; BIND reverse data file for 3.180.10.in-addr.arpa ; $TTL 604800 3.180.10.in-addr.arpa. IN SOA ns1.techglimpse.com. admin.techglimpse.com. ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 day ; 3.180.10.in-addr.arpa. IN NS ns1.techglimpse.com. 74.3.180.10.in-addr.arpa. IN PTR techglimpse.com.
Aquí, 74.3.180.10 es la dirección inversa de 10.180.3.74. Anote también el nombre del archivo.
* Registro PTR:asigna la dirección IP al nombre de dominio.
Configure named.conf para leer los archivos de zona
Deberíamos configurar named.conf para hacer referencia a los archivos de zona recién creados.
/var/named/zones/master/db.techglimpse.com /var/named/zones/master/db.10.180.3
En mi máquina, el named.conf se encuentra en /etc/. Sin embargo, esto podría cambiar en su máquina; por ejemplo:/etc/named/named.conf, /etc/bind/named.conf.
vi /etc/named.conf
Copie y pegue los siguientes textos
zone "techglimpse.com" { type master; file "/var/named/zones/master/db.techglimpse.com"; };
zona “3.180.10.in-addr.arpa” {
tipo maestro;
archivo “/var/named/zones/master/db.10.180.3”;
};
Nota:Realice los cambios necesarios para reflejar el dominio real y sus ubicaciones de archivos de zona.
Verifique que el archivo de configuración sea correcto con el siguiente comando.
named-checkconf
Verifique los archivos de zona en busca de errores usando el siguiente comando
named-checkzone
Por ejemplo
named-checkzone techglimpse.com /var/named/zones/master/db.techglimpse.com zone techglimpse.com/IN: loaded serial 1 OK
named-checkzone 3.180.10.in-addr.arpa /var/named/zones/master/db.10.180.3 zone 3.180.10.in-addr.arpa/IN: loaded serial 1 OK
Si el comando anterior responde con el estado OK, entonces puede continuar con los pasos a continuación, de lo contrario, vuelva a verificar los archivos de configuración en busca de errores.
Iniciar el servidor Bind
/etc/init.d/bind9 start
o
/etc/init.d/named start
Si hay algún error, debería verlo al iniciar los demonios named o bind9.
Probar la configuración
Si recuerda, sugerí instalar dnsutils, que instalará un comando llamado 'dig'.
dig @10.180.8.115 techglimpse.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @10.180.8.115 techglimpse.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45562 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;; SECCIÓN DE PREGUNTAS:
;techglimpse.com. EN UN
;; SECCIÓN DE RESPUESTAS:
techglimpse.com. 10800 EN UN 10.180.3.74
;; SECCIÓN DE AUTORIDAD:
techglimpse.com. 10800 EN NS ns1.techglimpse.com.
;; SECCIÓN ADICIONAL:
ns1.techglimpse.com. 10800 EN UN 10.180.3.74
;; Tiempo de consulta:2 ms
;; SERVIDOR:10.180.8.115#53(10.180.8.115)
;; CUÁNDO:Martes 15 de octubre 12:42:50 2013
;; TAMAÑO DEL MENSAJE recibido:83
Probar resolución de IP a host,
dig @10.180.8.115 -x 10.180.3.74
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @10.180.8.115 -x 10.180.3.74 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47357 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available
;; SECCIÓN DE PREGUNTAS:
;74.3.180.10.in-addr.arpa. EN PTR
;; SECCIÓN DE RESPUESTAS:
74.3.180.10.in-addr.arpa. 604800 EN PTR techglimpse.com.
;; SECCIÓN AUTORIDAD:
3.180.10.in-addr.arpa. 604800 EN NS ns1.techglimpse.com.
;; SECCIÓN ADICIONAL:
ns1.techglimpse.com. 10800 EN UN 10.180.3.74
;; Tiempo de consulta:2 ms
;; SERVIDOR:10.180.8.115#53(10.180.8.115)
;; CUÁNDO:martes 15 de octubre a las 12:44:30 de 2013
;; TAMAÑO DEL MENSAJE recibido:105
Nota:El primer argumento le dice al comando dig que resuelva usando el servidor DNS (10.180.8.115; que instalamos ahora) y el segundo argumento es el nombre de dominio/IP en cuestión.
Eso es todo. Has configurado Bind correctamente.
Lea también: ¿Debería habilitar la recursividad en su DNS? ¡Es vulnerable!
Lea también: ¿Cómo ocultar el nombre del software del servidor DNS y su versión? [Seguridad DNS]
Lea también: ¿Cómo habilitar el registro del servidor DNS de BIND para monitorear consultas y solucionar problemas?