Instalar y configurar servidor DNS con Bind9 en Ubuntu 20.04
En la siguiente entrada veremos como instalar y configurar nuestro propio servidor DNS con Bind9 en Ubuntu 20.04.
El servidor DNS es el encargado de convertir URL (dominios + servicios) en direcciones IP, por ejemplo podemos configurarlo con el dominio networld.cu e indicarle que cuando alguien escriba en su navegador www.networld.cu, pues convierta esa URL en una dirección IP 192.x.x.x que es a fin de cuenta la dirección donde estará escuchando un servidor Web en este caso. Este se hace por dos razones, la primera porque a los usuarios le es prácticamente imposible recordar direcciones IP, siendo mucho más amigable los nombres de dominio, la segunda porque a fin de cuenta los ordenadores o servidores se comunican por direcciones IP.
Así que si estas brindando servicios en tu red y los clientes tienen que usar direcciones IP y quieres cambiar eso para hacerles la vida más fácil, pues este artículo te va a ayudar a lograrlo, además tendrás un video en nuestro canal.
Asumiendo que ya tienes Ubuntu Server 20.04 instalado y funcionando, los datos del servidor para esta guía serían:
//Información del sistema base:
Nombre de host: ns1
FQDN: ns1.networld.cu
Dirección IP: 10.10.20.13
//Los archivos a editar en esta guía son:
/etc/bind/named.conf.options
/etc/default/named
/etc/bind/named.conf.local
/etc/bind/zonas/db.networld.cu (archivo inexistente, lo crearemos nosotros)
/etc/bind/zonas/db.10.10.20 (archivo inexistente, lo crearemos nosotros)
1- Lo primero que haremos siempre, comprobar actualizaciones:
# sudo apt update
# sudo apt upgrade
2- Nos instalamos el paquete de Bind9 y Nano para editar archivos en caso de que no lo tengamos.
# sudo apt install bind9 bind9-utils nano
3- Comprobamos si Bind9 ya esta en funcionamiento, los errores o advertencias son normales (aún no hemos realizado ninguna configuración)
# systemctl status bind9
4- Permitir de forma sencilla en el Firewall local, el acceso al puerto y protocolo que utiliza Bind9
# sudo ufw allow bind9
//Debe arrojar, Rules Update
5- Configuración mínima de Bind9
# sudo nano /etc/bind/named.conf.options
//Líneas a modificar, agregar o eliminar (el archivo debe contener lo siguiente)
listen-on { any; };
allow-query { localhost; 10.10.20.0/24; };
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation no;
//listen-on define la dirección donde estará escuchando Bind9, si no sabes con exactitud, utiliza la opción any.
//allow-query define desde que redes o ip es posible realizar consultas, normalmente la misma red a la que pertenece el servidor DNS.
//forwarders define servidores DNS a los cuales Bind9 reenviará las consultas que el no pueda resolver.
//dnssec-validation define si se validará un dnssec.
6- Obligar el uso único de IPv4
# sudo nano /etc/default/named
//Modificar la línea dejándola así:
OPTIONS="-u bind -4"
7- Comprobar la configuración de Bind9 y reiniciar el servicio si todo está bien, luego lanzar status para ver si no hay errores.
# sudo named-checkconf
# sudo systemctl restart bind9
# systemctl status bind9
8- Agregar las Zonas
# sudo nano /etc/bind/named.conf.local
zone "networld.cu" IN {
type master;
file "/etc/bind/zonas/db.networld.cu";
};
zone "20.10.10.in-addr.arpa" {
type master;
file "/etc/bind/zonas/db.10.10.20";
};
//Vas a cambiar el dominio por el que vas a usar al igual que la dirección IP, fijate que se lee la IP de atrás a adelante obviando el último octeto. Por ejemplo en el caso la IP es: 10.10.20.13 y esta representada en el archivo así: 20.10.10.
//La zona networld.cu es la zona directa de nuestro DNS.
//La zona 20.10.10.in-addr.arpa es la zona inversa para nuestros PTR.
//Los archivos de zona configurados hay que crearlos porque lógicamente no existen [db.networld.cu y db.10.10.20]
9- Creando el directorio donde guardaremos los archivos de zonas y luego creamos las dos zonas, la directa y la inversa.
# sudo mkdir /etc/bind/zonas
//Ten en cuenta cambiar los nombres de archivos según el dominio y la IP usada.
# sudo nano /etc/bind/zonas/db.networld.cu
$TTL 1D
@ IN SOA ns1.networld.cu. admin.networld.cu. (
1 ; Serial
12h ; Refresh
15m ; Retry
3w ; Expire
2h ) ; Negative Cache TTL
; Registros NS
IN NS ns1.networld.cu.
ns1 IN A 10.10.20.13
www IN A 10.10.20.13
// La línea etiquetada como ‘serial‘ recoge un número que deberá incrementarse manualmente cada vez que editemos este archivo, ya sea para modificar nombres o añadir nuevos.
// La línea admin.networld.cu. se trata de la dirección de correo del administrador del servidor DNS sin el @, estos datos al igual que los tiempos de Refrech y demás no se tratan a la ligera, pues son los que dan reputación y confiabilidad a nuestro servidor en el mundo cuando estamos trabajando sobre un servidor DNS autoritativo o real.
# sudo nano /etc/bind/zonas/db.10.10.20
$TTL 1d ;
@ IN SOA ns1.networld.cu admin.networld.cu. (
20210222 ; Serial
12h ; Refresh
15m ; Retry
3w ; Expire
2h ) ; Negative Cache TTL
;
@ IN NS ns1.networld.cu.
1 IN PTR www.networld.cu.
//Es importante en estos dos archivos que acabamos de crear respetar los signos, cualquier error conlleva que el servidor no arranque.
10- Comprobar los archivos de zona que acabamos de crear para ver si todo esta bien.
# sudo named-checkzone networld.cu /etc/bind/zonas/db.networld.cu
# sudo named-checkzone db.20.10.10.in-addr.arpa /etc/bind/zonas/db.10.10.20
//Debemos obtener un OK en cada comprobación
11- Reiniciamos nuevamente
# sudo systemctl restart bind9
12- Comprobar funcionamiento desde otra PC.
ping www.networld.cu
//Esto debe devolvernos respuesta desde la IP a la que esta asignada la URL.
//Detalle que no debes olvidar, el cliente debe tener en la configuración de IP, el servidor DNS 10.10.20.13 (o el suyo)
//Para resolver dudas sobre el artículo, por favor utilizar la Comunidad.
Related Posts
21 de noviembre de 2022
Servidor FTP con VSFTPD en Ubuntu 20.04
21 de noviembre de 2022
Uno no, sino dos servidores VPN para escoger – OpenVPN/Wireguard en Ubuntu 20.04
21 de noviembre de 2022