Instalación de Servidor DNS en Ubuntu 18

En el siguiente tutorial vamos a configurar e instalar un servidor DNS, sobre una red de maquinas virtuales con  Ubuntu 18.04. La misma configuración puede aplicarse en un equipo físico y en otras distribuciones Linux como Debian, Linux Mint…

El el tutorial anterior sobre como instalar un servidor DHCP, podemos ver la configuración de red que hemos realizado.

Objetivos de la instalación del servidor DNS

En nuestro caso vamos a configurar un servidor maestro DNS, con la finalidad de que resuelva el nombre de los equipos conectados a nuestra red local. Para ello se crearan archivos de configuración directa e inversa. Las peticiones externas sobre dominios que nuestro servidor DNS no conoce, las reenviaremos a los de Google (8.8.8.8) y Cloudfare (1.0.0.1).

Instalación del servicio DNS

Antes de nada, abrimos el terminal e iniciamos sesión como root.

Posteriormente actualizamos los repositorios:

apt update

E instalamos las versiones más recientes respetando la configuración:

apt upgrade

Finalmente, instalamos el servicio DNS mediante el paquete bind9.

apt install bind9
apt install bind9utils

Configuración del servidor DNS

Podemos ver los diferentes archivos utilizados por bind9 para la configuración del servidor DNS accediendo al fichero /etc/bind/named.conf.

nano /etc/bind/named.conf
include "/etc/bind/named.conf.options"; #Almacena las opciones principales del servicio DNS
include "/etc/bind/named.conf.local; #Nos permite incluir archivos para direccionamiento directo e inverso.
include "/etc/bind/named.conf.default-zones; #Indica la zona por defecto del servidor de nombres de dominio

En primer lugar, editamos el archivo /etc/bind/named.conf.options, para realizar la configuración principal del servidor. Para ello borramos el contenido e insertemos la siguiente información:

 nano /etc/bind/named.conf.option
options {
#Indica el archivo donde se almacena la caché:
        directory "/var/cache/bind";
#Reenvía las peticiones que no puede resolver nuestro servidor
        forwarders {
                8.8.8.8;
                1.0.0.1;
        };
#Opciones de seguridad: el servidor escucha en el puerto 53 
#Se escuchan las peticiones realizadas por nuestro equipo y los conectados a la red local 192.168.3.0
        listen-on port 53 {
                127.0.0.1;
                192.168.3.0/24;
        };
#No se realizan escuchas IPv6
        listen-on-v6 { none; };
#Acepta peticiones DNS realizadas por servidor y equipos conectados a la red local 192.168.3.0
        allow-query {
                127.0.0.1;
                192.168.3.0/24;
        };
#No se permite la transferencia de información entre servidores DNS
        allow-transfer { none; };
#Se aceptan las peticiones DNS recursivas, para servidor y equipos de la red...
        allow-recursion {
                127.0.0.1;
                192.168.3.0/24;
        };

};



Debido a que nuestra red local de trabajo es 192.168.3.0/24, escuchamos tan solo las peticiones recibidas por esta red. Para personalizar la instalación, tan solo hay que cambiar la IP 192.168.3.0 del fichero de configuración.

Una vez realizada la configuración inicial, para configurar las peticiones recibidas en el dominio, editamos el archivo /etc/bind/named.conf.local

 nano /etc/bind/named.conf.local
#Nombre del dominio
zone "asirfp" {
type master;
#Archivo de resolución directa de nombres
file "/etc/bind/asirfp.db";
};
#Parte fija de la ip de red invertida 192.168.3 -> 3.168.192
#seguda de .in-addr.arpa
zone "3.168.192.in-addr.arpa" {
type master;
#Archivo de resolución inversa de nombres
file "/etc/bind/asirfp.rev";
};

Creación de archivos de configuración directa e inversa

Para el correcto funcionamiento del servicio DNS, tenemos que crear los archivos con el nombre y ruta que especificamos en el archivo de configuración /etc/bind/named.conf.local

En primer lugar editamos el archivo de configuración directa:

nano /etc/bind/asirfp.db
$TTL    604800
@       IN      SOA     asirfp root.asirfp(
                                2       ;Serial
                                404800  ;Refresh
                                86400   ;Retry
                                2419200 ;Expire
                                604800  )       ;Negative       Cache   TTL
@       IN      NS       asirfp
@       IN      A       192.168.3.1
@       IN      MX 0    asirfp
www     IN      A       192.168.3.1
uah     IN      CNAME   asirfp
cliente-asirfp     IN      A       192.168.3.50
cliente-asirfp1   IN      A      192.168.3.51
cliente-asirfp2   IN      A      192.168.3.52

Para adaptarlo a nuestro caso particular tendremos que modificar asirfp por nuestro nombre de dominio, la IP del servidor 192.168.3.1 y las IPs y nombre de los equipos.

Por ejemplo, vamos a modificar el archivo de configuración adecuándolo a un dominio llamado DOMINIO, un servidor con IP 192.168.1.2 y un equipo llamado Cliente-Dominio en la IP 192.168.1.20.

$TTL    604800
@       IN      SOA     DOMINIO root.DOMINIO(
                                2       ;Serial
                                404800  ;Refresh
                                86400   ;Retry
                                2419200 ;Expire
                                604800  )       ;Negative       Cache   TTL
@       IN      NS       DOMINIO
@       IN      A       192.168.1.2
@       IN      MX 0    DOMINIO
www     IN      A       192.168.1.2
uah     IN      CNAME   DOMINIO
Cliente-Dominio     IN      A       192.168.1.20

Por otra parte, editamos el archivo de configuración inversa:

nano /etc/bind/asirfp.rev
$TTL    604800
@       IN      SOA     asirfp. root.asirfp(
                                2       ; Serial
                           404800       ; Refresh
                            86400       ; Retry
                          2419200       ; Expire
                           604800 )     ; Negative Cache TTL
@       IN      NS      asirfp.
1       IN      PTR     servidor.asirfp
50      IN      PTR     cliente-asirfp
51      IN      PTR     cliente-asirfp1
52      IN      PTR     cliente-asirfp2

En el caso del archivo de configuración inversa, solo tenemos que añadir la parte variable de la dirección IP, la parte fija de la dirección de red se encuentra indicada en el fichero /etc/bind/named.conf.local

Con esto, ya hemos finalizado la instalación y configuración de nuestro propio servidor DNS.

Verificamos que todo funciona correctamente escribiendo:

named-checkconf

Para hacer efectivos los cambios, debemos reiniciar el servicio:

/etc/init.d/bind9 restart

Finalmente, para indicar al equipo que debe usar nuestro servidor DNS, tenemos que borrar y configurar un nuevo fichero /etc/resolv.conf
Borramos:

rm /etc/resolv.conf

Creamos,

touch /etc/resolv.conf

Damos permisos,

chmod 777 /etc/resolv.conf

y editamos:

nano /etc/resolv.conf
domain   asirfp
nameserver   192.168.3.1
search   asirfp

Deja un comentario