Servidor DNS (Ubuntu BIND9)

Uno de los servicios más importantes de Internet es el de resolución de nombres (DNS) que nos permite trabajar con nombres (FQDN) en lugar de tener que recordar listas interminables de IPs.

En este post, vamos a instalar un servidor DNS sobre Ubuntu, en concreto, usaremos uno de los más populares BIND9. Nuestro servidor de nombres realizará una doble función, por un lado, se encargará de resolver las peticiones de los clientes, en este caso reenviando las peticiones a otros servidores DNS y además resolverá una zona a nivel local.

Instalación y configuraciones iniciales

Suponemos un Ubuntu Server 16.04 correctamente configurado y con nombre ns1 y dominio casa.local, obviamente aquí irá el dominio que cada uno quiera configurar.

El primer paso, será la instalación del servicio

sudo apt update

sudo apt install bind9 -y

En nuestro ejemplo, queremos que únicamente funcione con direcciones IPv4:

sudo systemctl edit –full bind9

bind01

A continuación recargamos el servicio:

sudo systemctl daemon reload

El siguiente paso, es hacer que el servidor se apunte a sí mismo, paso necesario si queremos que él mismo resuelva la zona local, para ello, editamos el archivo de configuración de red y hacemos que se apunte a sí mismo como servidor de nombres:

bind04

Reiniciamos la interfície. Recordad que en Ubuntu 16.04 el reinicio de la interfície es algo más complicado que en versiones anteriores:

sudo ip addr flush enp0s3

sudo systemctl restart networking.service

Editamos el archivo /etc/resolv.conf para eliminar las referencias a los servidores de nombres anteriores:

bind05

La configuración de BIND9 se centraliza desde el archivo /etc/bind/named.conf, este archivo, básicamente llama a tres archivos:

  • etc/bind/named.conf.options: que contiene las configuraciones generales.
  • /etc/bind/named.conf.local: donde se definen las zonas que contendrá el servidor.
  • /etc/bind/named.conf.default-zones: que contiene las zonas definidas por defecto.

El primer paso, será editar el archivo /etc/bind/named.conf.options para definir los reenviadores, las direcciones de escucha, etc. Quedando una configuración similar a la de la imagen siguiente:

bind02

Donde en forwarders pondremos las direcciones IP de los DNS que queramos utilizar para resolver las consultas a dominios externos al local.

Para comprobar que no se han cometido errores sintácticos (es muy fácil dejarse un punto y coma), se tiene el comando

named-checkconf

 

 Si no se obtienen errores se procede a reiniciar el servicio:

sudo systemctl restart bind9.service

Comprobamos que el servidor resuelve correctamente una consulta a un dominio externo:

bind06

Creación zona local

Ahora es momento de definir nuestra zona local. Para ello, en primer lugar, deberemos editar el archivo named.conf.local. A continuación, se crea un archivo con la información de la zona. En este ejemplo, vamos a crear tanto una zona directa como una zona inversa (para resolución de nombre a partir de IP).

bind07

Para alojar los archivos de zona, creamos una carpeta llamada /etc/bind/zones y usaremos los archivos de las zonas por defecto como plantillas.

sudo su

mkdir /etc/bind/zones

cp /etc/bind/db.local /etc/bind/zones/db.casa.local

cp /etc/bind/db.127 /etc/bind/zones/db.192.168.1

Ahora editamos el archivo db.casa.local para editar la SOA

bind08

A continuación añadimos algunos registros a modo de ejemplo:

bind09

Se repite el proceso con el archivo db.192.168.1 para configurar la zona inversa:

bind10

bind11

Una vez editados los archivos comprobamos que no haya errores sintácticos y reiniciamos el servicio:

named-checkconf

systemctl restart bind9.service

Comprobamos que el servidor resuelve correctamente consultas locales:

bind12

Y ya tenemos nuestro servidor DNS operativo!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s