Servidor DNS en Debian 9.5

Por: Carlos Antonio Leal Saballos

El DNS es sin lugar a dudas uno de los servicios más importantes en el mundo de internet. El DNS es por mucho el alma, nervio y músculo de internet. Es un sistema que permite usar nombres de dominio en lugar de direcciones IP. La verdad es que un ser humano promedio será incapaz de recordar todos los números IP de todos los servidores que utiliza, no obstante, le resulta sencillo recordar los nombres de dominio.

Requisitos para configurar un servidor DNS

  • Configurar adecuadamente los parámetros de red, en este caso se utiliza 192.168.10.10 para el servidor.
  • Configurar manualmente los parámetros de red en el cliente o utilizar un servidor DHCP.
  • Se debe definir apropiadamente el nombre del equipo y del dominio, en este caso el nombre del servidor es tserver y utilizaremos los dominios hipotéticos debian.edu.ni y debian.com.ni.
  • Configurar adecuadamente el nombre de equipo editando el archivo /etc/hostname
  • Tomo en cuenta que:
    • Si el número IP del servidor es privado, entonces el dominio será privado.
    • Al usar un IP público el dominio será público.
    • En Nicaragua quien autoriza los dominios públicos es el nic.NI (http://www.nic.ni/)

Paso 0 –  Abrir un terminar y convertirse en super-usurio

cleal@tserver:~/Escritorio$ su -
Contraseña:
root@tserver:~#

Paso 1 – Instalar el software necesario

root@tserver:~# apt-get install bind9 dnsutils

Paso 2 – Realizar una copia de respaldo del archivo de configuración origianal

root@tserver:~# cp /etc/bind/named.conf.local /etc/bind/named.conf.local.original

Paso 3 – Editar el archivo de configuración

root@tserver:~# nano /etc/bind/named.conf.local

Agregamos al final

zone "debian.edu.ni" {
type master;
file "db.debian.edu.ni.zone";
};

zone "debian.com.ni" {
type master;
file "db.debian.com.ni.zone";
};

zone "10.168.192.in-addr.arpa" {
type master;
file "db.192.168.10";
};

Para asegurarnos que el archivo está bien

root@tserver:~# named-checkconf

Paso 4 – Crear los archivos de zona

Procedamos a crear los (nuevos) archivos de zona, esos archivos contienen los registros del DNS y en Debian se encuentran en el directorio /var/cache/bind/

Creamos el archivo de la zona debian.edu.ni

root@tserver:~# nano /var/cache/bind/db.debian.edu.ni.zone

¿Aparece en blanco? ¡No importa! Lo dejamos así:

$ORIGIN debian.edu.ni.
$TTL 86400            ; 1 dia
@       IN      SOA ns.debian.edu.ni. info.debian.edu.ni. (
        2018090701    ; serie
        6H            ; refresco (6 horas)
        1H            ; reintentos (1 hora)
        2W            ; expira (2 semanas)
        3H            ; mínimo (3 horas)
)

@      IN       NS     ns
@      IN       MX 10  mail
@      IN       A      192.168.10.10 
ns     IN       A      192.168.10.10
mail   IN       A      192.168.10.10
www    IN       A      192.168.10.10

Ahora creamos el archivo de la zona debian.com.ni

root@tserver:~# nano /var/cache/bind/db.debian.com.ni.zone

¿Aparece en blanco? ¡No importa! Lo dejamos así:

$ORIGIN debian.com.ni.
$TTL 86400            ; 1 dia
@       IN      SOA ns.debian.com.ni. info.debian.com.ni. (
        2018090701    ; serie
        6H            ; refresco (6 horas)
        1H            ; reintentos (1 hora)
        2W            ; expira (2 semanas)
        3H            ; mínimo (3 horas)
)

@      IN       NS     ns
@      IN       MX 10  mail
@      IN       A      192.168.10.10 # Esta es una configuración importante
ns     IN       A      192.168.10.10
mail   IN       A      192.168.10.10
www    IN       A      192.168.10.10

Vale la pena detectar errores en el archivo de zona

root@tserver:~# named-checkzone debian.edu.ni /var/cache/bind/db.debian.edu.ni.zone
zone debian.edu.ni/IN: loaded serial 2018090701
OK
root@tserver:~# named-checkzone debian.com.ni /var/cache/bind/db.debian.com.ni.zone
zone debian.com.ni/IN: loaded serial 2018090701
OK
root@tserver:~#

Ahora la zona de búsqueda inversa

root@tserver:~#  nano /var/cache/bind/db.192.168.10

¿Aparece en blanco? ¡No importa! Lo dejamos así:

$ORIGIN 10.168.192.in-addr.arpa.
$TTL 86400     ; 1 dia
@       IN  SOA ns.debian.edu.ni. info.debian.edu.ni. (
        2018090701    ; serie
        6H            ; refresco (6 horas)
        1H            ; reintentos (1 hora)
        2W            ; expira (2 semanas)
        3H            ; mínimo (3 horas)
)
@       IN      NS      ns.debian.edu.ni.
10      IN      PTR     ns.debian.edu.ni.
10      IN      PTR     mail.debian.edu.ni.
10      IN      PTR     www.debian.edu.ni.
10      IN      PTR     ns.debian.com.ni.
10      IN      PTR     mail.debian.com.ni.
10      IN      PTR     www.debian.com.ni.

También es se puede comprobar que la configuración esté bien con:

root@tserver:~#  named-checkzone 10.168.192.in-addr.arpa /var/cache/bind/db.192.168.10
zone 10.168.192.in-addr.arpa/IN: loaded serial 2018090701
OK
root@tserver:~#

Paso 5 – Re-iniciar el servicio

root@tserver:~# systemctl restart bind9
root@tserver:~# systemctl status bind9
  • bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-09-07 23:52:29 CST; 9s ago
 root@tserver:~#

Paso 6 – Editar el resolv.conf

root@tserver:~#  nano /etc/resolv.conf

Ponemos nuestro servidor como primer DNS

nameserver 192.168.10.10
nameserver 192.168.8.1

Paso 7 – Probar la configuración desde el servidor

Con un dominio interno

root@tserver:/var/cache/bind# nslookup debian.com.ni
Server:           192.168.10.10
Address:    192.168.10.10#53
Name: debian.com.ni
Address: 192.168.10.10
root@tserver:/var/cache/bind#

Con un dominio externo

root@tserver:/var/cache/bind# nslookup google.com.ni
Server:           192.168.8.1
Address:    192.168.8.1#53
Non-authoritative answer:
Name: google.com.ni
Address: 172.217.2.195
root@tserver:/var/cache/bind#

Paso 8 – Probar la configuración desde un cliente

clienteDNS

El procedimiento ha sido todo un éxito

El video explicando este proceso está en:

3 comentarios en “Servidor DNS en Debian 9.5

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.