| |

Monta tu propio servidor DNS y web en Ubuntu: BIND9 + Apache2 para redes locales

Configuración de servidor DNS con BIND9 y servidor web Apache2 en Ubuntu

Introducción

Montar un servidor DNS propio en una red local permite resolver nombres de dominio personalizados sin depender de servidores externos. Combinado con un servidor web Apache2, es posible crear un entorno de desarrollo completo donde los clientes de la red puedan acceder a sitios web internos mediante nombres de dominio en lugar de direcciones IP. En esta guía se documenta el proceso completo en un entorno de dos máquinas virtuales Ubuntu en VirtualBox: una actúa como servidor (DNS + web) y la otra como cliente.

Entorno de trabajo

Las dos máquinas virtuales se crean en VirtualBox con los adaptadores de red configurados correctamente para que puedan comunicarse entre sí. La referencia de configuración utilizada es:

  • Servidor: Ubuntu Server — ejecuta BIND9 (DNS) y Apache2 (web).
  • Cliente: Ubuntu Desktop — configurado para usar el servidor DNS de la máquina servidor.

El dominio interno creado para la demostración es bixi.com, resuelto por el servidor DNS propio.

Configuración del servidor DNS con BIND9

BIND9 es el servidor DNS más utilizado en sistemas Linux. Su instalación y configuración en Ubuntu permite resolver nombres de dominio tanto para la red interna como para consultas externas.

Instalación de BIND9

El primer paso es instalar el paquete bind9 en la máquina servidor:

user@servidor:~$ sudo apt install bind9


Verificación del estado del servicio

Una vez instalado, se verifica que el servicio está activo y en ejecución:

user@servidor:~$ sudo systemctl status bind9

Configuración del archivo named.conf.options

El archivo /etc/bind/named.conf.options define las opciones globales del servidor DNS: los forwarders (servidores DNS de reenvío cuando no se conoce la respuesta), la escucha en interfaces y los permisos de consulta.

user@servidor:~$ sudo nano /etc/bind/named.conf.options


Configuración del archivo named.conf.local

En /etc/bind/named.conf.local se declaran las zonas DNS gestionadas por este servidor. Para el dominio bixi.com se añade una zona directa (nombre → IP) y opcionalmente una zona inversa (IP → nombre):

user@servidor:~$ sudo nano /etc/bind/named.conf.local


Creación del archivo de zona

El archivo de zona contiene los registros DNS del dominio: el registro SOA (Start of Authority), los registros NS (Name Server) y los registros A (nombre → dirección IP). Se crea en el directorio /etc/bind/zones/:

Reinicio del servicio y verificación

Tras modificar la configuración, se reinicia BIND9 y se comprueba que no hay errores de sintaxis:

user@servidor:~$ sudo systemctl restart bind9
user@servidor:~$ sudo named-checkconf
user@servidor:~$ sudo named-checkzone bixi.com /etc/bind/zones/db.bixi.com


Configuración del cliente

En la máquina cliente, se configura el servidor DNS para que apunte a la IP del servidor Ubuntu donde se ha instalado BIND9. Esto se hace modificando el archivo /etc/resolv.conf o a través de la configuración de red del sistema:

nameserver <IP_del_servidor>


Demostración del funcionamiento del DNS

Con las dos máquinas virtuales en funcionamiento y el cliente configurado para usar el servidor DNS, se verifica que el dominio bixi.com se resuelve correctamente desde el cliente. El dominio DNS apunta a la web DHCP configurada en el servidor:

Configuración del servidor web con Apache2

Apache2 es el servidor web más utilizado en sistemas Linux. Su instalación en Ubuntu es directa:

user@servidor:~$ sudo apt install apache2


Una vez instalado, Apache2 arranca automáticamente y sirve la página por defecto en el puerto 80. Se verifica que el servicio está activo:

user@servidor:~$ sudo systemctl status apache2


Acceso desde el cliente al servidor web

Desde el cliente, se abre el navegador y se accede a la IP del servidor o con el nombre del dominio. La página por defecto de Apache2 se carga correctamente, confirmando que hay conectividad entre las dos máquinas virtuales y que el servidor web está operativo.

Conclusión

La combinación de un servidor DNS BIND9 y un servidor web Apache2 en Ubuntu permite crear un entorno de intranet completo donde los equipos de la red acceden a servicios web internos mediante nombres de dominio personalizados. La clave está en que el archivo de zona DNS tenga correctamente configurado el registro A que apunta al servidor web.