• Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mi Blog
❖ Cómo instalar un servidor de DNS en GNU/Linux Debian

❖ Cómo instalar un servidor de DNS en GNU/Linux Debian

En este nuevo tutorial os voy a enseñar como montar un Servidor de Nombres de Dominio (DNS) en GNU/Linux Debian con el software BIND9 . La configuración de BIND9 podemos aplicarla a cualquier distribución de GNU/Linux pero respetando siempre las particularidades de cada una de ellas. Para el que no sepa lo que es un servidor DNS lo resumiré brevemente: "Un servidor DNS es el encargado de traducir una dirección IP a un nombre y viceversa". Por ejemplo www.google.es se corresponde a 74.125.196.94. Gracias a los servidores de DNS podemos acordarnos de las direcciones Web de los sitios Web. Es mucho más sencillo recordar www.facebook.com que 91.234.1.47 ¿verdad?

BIND9 es el software mas popular de resolución DNS usado en Internet, aunque existen otros muy populares como puede ser PowerDNS. BIND9 es al servicio DNS como Sendmail es al servicio de SMTP. Conocer como se usa y configura es elemental para un buen Sysadmin ;) ¡ Espero que os guste el tutorial !

1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL

  • [Servidor DNS] - GNU/Linux Debian 8
  • [Cliente DNS] - GNU/Linux Ubuntu 16.04
  • [Cliente DNS] - Windows 7

2.- INSTALACIÓN DEL SERVIDOR BIND9

Lo primero, como es obvio, es instalar el paquete de Bind9 para resolver nuestras peticiones de DNS.

Instalaremos el paquete como viene siendo habitual en todos los tutoriales de GNU/Linux Debian, con usuario root ó con sudo:

# apt-get update
# apt-get install bind9

3.- CONFIGURACIÓN DEL FICHERO LOCAL

El dominio que usaré en este tutorial será rpf-intranet.net y los hosts del dominio tendrán un nombre con la siguiente sintaxis: NOMBRE.rpf-intranet.net. El dominio entendemos que es de nuestra propiedad y no está siendo gestionado por ningún otro servidor de DNS de ningún ISP o Hosting. El directorio de configuración de BIND9 es /etc/bind/.

El direccionamiento actual que estoy usando en la LAN es: 192.168.145.0/24 y el servidor de DNS tiene la IP 192.168.145.213. Todas las pruebas las haremos a nivel de LAN y el servidor BIND9 resolverá equipos de la LAN únicamente, aunque podemos poner el servidor DNS en una DMZ y que esté accesible a Internet.

Editamos el /etc/bind/named.conf.local y añadiremos las entradas a los ficheros tanto de la zona de resolución directa como la de resolución inversa. Ambas entradas llamarán a su correspondiente fichero de configuración en la línea "file" quedando el fichero de la siguiente forma:

BIND9 DNS

Fichero named.conf.local

4.- CONFIGURACIÓN DE LA RESOLUCIÓN DIRECTA

Ahora crearemos un fichero basándonos en una de las plantillas que hay en el directorio /etc/bind/:

# cp /etc/bind/db.192 /etc/bind/rpf-intranet.net.db 

Supongamos que tenemos varios servidores en la LAN y queremos asignarles una IP y un nombre. El fichero de resolución directa deberá tener el siguiente aspecto (OJO a todos los puntos detrás del dominio):

BIND9 DNS

Fichero de resolución directa

Ahora reiniciamos Bind9 para que los cambios se apliquen:

# /etc/init.d/bind9 restart 

Para comprobar que el servidor DNS está resolviendo correctamente las DNS, usaremos el comando "dig" para preguntarle por uno de los equipos que hemos configurado en la resolución directa:

# dig @192.168.145.213 ns.rpf-intranet.net

; >> DiG 9.9.5-9+deb8u6-Debian >> @192.168.145.213 ns.rpf-intranet.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER- opcode: QUERY, status: NOERROR, id: 25715
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns.rpf-intranet.net. IN A

;; ANSWER SECTION:
ns.rpf-intranet.net. 604800 IN A 192.168.145.213

;; AUTHORITY SECTION:
rpf-intranet.net. 604800 IN NS ns.rpf-intranet.net.

;; Query time: 0 msec
;; SERVER: 192.168.145.213#53(192.168.145.213)
;; WHEN: Wed May 25 11:46:05 CEST 2016
;; MSG SIZE rcvd: 78

Esto debemos hacerlo para todos los equipos de la resolución directa y comprobar que nos devuelve la IP correcta. Podemos hacer lo siguiente para comprobar los equipos:

# dig @192.168.145.213 ns.rpf-intranet.net | grep ^ns
ns.rpf-intranet.net. 604800 IN A 192.168.145.213
# dig @192.168.145.213 www.rpf-intranet.net | grep ^www
www.rpf-intranet.net. 604800 IN A 192.168.145.100
# dig @192.168.145.213 mail.rpf-intranet.net | grep ^mail
mail.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 smtp.rpf-intranet.net | grep ^smtp
smtp.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 pop3.rpf-intranet.net | grep ^pop3
pop3.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 imap.rpf-intranet.net | grep ^imap
imap.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 ftp.rpf-intranet.net | grep ^ftp
ftp.rpf-intranet.net. 604800 IN A 192.168.145.102

Si tenemos miles ó cientos de equipos, podemos hacernos un pequeño script para que nos haga todos los DIGs de una sola vez:

# for i in `cat /etc/bind/rpf-intranet.net.db | egrep "IN" | egrep -v "@|;" | awk '{print $1}'`; do dig @192.168.145.213 $i.rpf-intranet.net | grep ^$i; done
ns.rpf-intranet.net. 604800 IN A 192.168.145.213
www.rpf-intranet.net. 604800 IN A 192.168.145.100
mail.rpf-intranet.net. 604800 IN A 192.168.145.101
smtp.rpf-intranet.net. 604800 IN A 192.168.145.101
pop3.rpf-intranet.net. 604800 IN A 192.168.145.101
imap.rpf-intranet.net. 604800 IN A 192.168.145.101
ftp.rpf-intranet.net. 604800 IN A 192.168.145.102

5.- CONFIGURACIÓN DE LA RESOLUCIÓN INVERSA

Para cada una de las IPs que hemos creado en el fichero de resolución directa, tenemos que crear una entrada en el fichero de resolución inversa. El fichero a editar es: /etc/bind/db.rpf-intranet.net y debe tener el siguiente aspecto:

DNS Server

Fichero de resolución inversa

Podemos comprobar la resolución inversa lo podemos hacer exactamente igual que la directa, pero usaré otro método para que lo también sepáis usarlo. Primero debemos editar el fichero /etc/resolv.conf y añadir como DNS nuestro servidor local. Editaremos el fichero y pondremos una única línea.

nameserver 192.168.145.213

Ahora, con el comando host podremos ver si el DNS nos resuelve a través de la IP el NOMBRE del equipo:

# host 

DNS Server

Comprobando resolución inversa

6.- CONFIGURACIÓN EN LOS CLIENTES GNU/LINUX

Para que los clientes GNU/Linux usen nuestro servidor DNS, debemos editar el fichero /etc/resolv.conf y añadir la línea siguiente:

nameserver 192.168.1.45.213

Redordad que si algún gestor de conexión como NetWorkManager está instalado y funcionando en vuestro equipo, este cambio manual se perderá. Por tanto, debéis hacer el cambio desde el propio gestor de conexiones.

7.- CONFIGURACIÓN EN LOS CLIENTES WINDOWS

Para configurar como servidor DNS en los equipos Windows nuestro DNS GNU/Linux, debemos ir a las propiedades de la interfaz de Red y en "Protocolo TCP ipv4" debemos poner la IP del servidor DNS.

DNS Server

Configuración DNS cliente Windows

ENJOY!


Raúl Prieto Fernández

Sitio Web: /

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Información básica sobre Protección de Datos

Responsable: Raúl Prieto Fernández +info

Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info

Legitimación: Consentimiento del interesado +info

Destinatarios: No se comunicarán datos a persona u organización alguna. +info +info

Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. +info

Plazo de conservación de los datos: Hasta que no se solicite su supresión por el interesado.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web raulprietofernandez.net +info

     

Código de seguridad
Refescar


LOGIN / ENTRAR

BUSCAR EN EL BLOG

TWITTER TIMELINE

Booking.com

ENCUESTA

¿Cual es el mejor Sistema Operativo?

Como es lógico, esta web utiliza cookies propias y de terceros para elaborar información estadística y mostrar publicidad personalizada a través del análisis de tu navegación, conforme a la política de cookies.

  Si continúas navegando, aceptas su uso.