miércoles, 26 de mayo de 2021

Servidor DNS recursivo (caching) con Bind en CentOS/RockyLinux/AlmaLinux/RHEL 7

 En ésta entrada realizaremos un servidor DNS recursivo para nuestra red interna (192.168.2.0/24) y ofrecer más adelante un servidor web en una terminal de dicho segmento.

Nuestro escenario es el siguiente:

Nuestro servidor (CentOS 7) tiene dos interfaces de red, mínimo en interfaces para tener un firewall, entonces nuestra interfaz conectado a internet o al modem/router de nuestro proveedor es con nombre enp0s3 cuya ipv4 es 192.168.1.5/24 y la interfaz destinada a nuestra red interna tiene nombre enp0s8 cuya ipv4 es 192.168.2.5/24; existe un switch conectado a la interfaz interna y conecta un segmento de red completo con posibilidad de proveer 254 terminales, exceptuando la ipv4 ya utilizada.

Modem/Router (internet)====(enp0s3)CentOS(enp0s8)====Switch ethernet

El servicio dns resolverá nombres a ipv4, se usará la configuración de DNS recursivo (caching) usando el ejemplo que proporciona CentOS o similares.

Paso 1. instalaremos el equipamiento lógico

#yum install bind bind-utils bind-chroot

bind-chroot lo iniciaremos al final.

Paso 2. iniciaremos el servicio named

#systemctl enable named

#systemctl start named

#systemctl status named

Paso 3. los archivos a configurar son /etc/named.conf, /etc/named.rfc912

Paso 4. el directorio por defecto para los archivos donde estará la zona directa e inversa está en /var/named

Paso 5. configurando las opciones generales en named.conf, se añade estas líneas y se deja por defecto las que ya trae CentOS 7 (para 8 es lo mismo)

#vi /etc/named.conf

options    {

//escuchar en interface de la red interna y en IPv4 only

listen-on    port     53    { 127.0.0.1; 192.168.2.5;  };

listen-on-v6    port    53    { none; }; 

...

//consultas a nuestra red interna

allow-query    { localhost; 192.168.2.0/24; };

//no transferir a otro equipo

allow-transfer    { none; };

//consultas recursivas desde la lan

allow-recursion { 192.168.2.0/24; };

//no mostrar la version de bind

version none;

//opción por defecto, esta opción debe estar en yes, caso contrario no va //funcionar la resolución de nombres.
recursion yes;

...

//deshabilitamos dnssec, para no complicarnos :)

dnssec-enable no;

dnssec-validation no;

...

};

Puedes verificar si no tienes errores con el comando:

#named-checkconf /etc/named.conf

Si no muestra un mensaje, entonces el file esta bien :)

Paso 6. creamos nuestras zona directa e inversa en el archivo /etc/named.rfc912.zones

#vi  /etc/named.rfc912.zones

...

//nuestro dominio principal

zone "intranet.edu" IN {

type master;

//la ruta esta en /var/named

file  "db.intranet.edu";

allow-update "none";

};

//zona inversa

zone "2.168.192.in-addr.arpa" IN {

type master;

file "db.2.168.192";

allow-update "none";

};

Puedes revisar el file, si no muestra mensajes el file esta good :)

#named-checkconf /etc/named.rfc1912.zones

Paso 7. creamos los archivos en la ruta /var/named

#cd /var/named/

#cp named.localhost db.intranet.edu

#chown root:named db.intranet.edu

#vi db.intranet.edu

En este archivo se pudo haber usado @ en lugar del dominio intranet.edu., de igual manera donde hay espacio en blanco significa que está presente el @, por lo tanto es el dominio principal o zona directa.

Para la zona inversa

#cp db.intranet.edu db.2.168.192

#chown root:named db.2.168.192

#vi db.2.168.192

 Probar las zonas y buscar errores con el comando:

#named-checkzone intranet.edu db.intranet.edu

Paso 8. reiniciamos el servicio

#systemctl restart named

Paso 9. cambiamos la ip de nuestro servidor dns remoto a nuestra ip, a nuestro servicio dns local.

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

...

DNS1=192.168.2.5

#systemctl restart NetworkManager

#cat /etc/resolv.conf

Ya tomó nuestra ip.

Paso 10. pruebas en nuestro equipo y en clientes en nuestro segmento de red

#ping -c 2 www.intranet.edu

Paso 11. añadimos el servicio a nuestro firewall, se está usando firewallD

#firewall-cmd --add-service=dns --zone=internal --permanent

Ahora ya pueden consultar los clientes.

Paso 12. aquí utilizaremos a bind-chroot, para ello debemos parar y deshabilitar or disable named service, and start named-chroot, e.g.

#systemctl stop named

#systemctl start named-chroot

#systemctl enable named-chroot

Ahora todo estará montado de forma automática, no necesitamos hacer otros cambios, hay que mirar la ruta /var/named/chroot/..., ahi se montaron todos los archivos que hemos configurado y otros.

recomienda la web de rhel que si se va a editar se haga con una copia, por ejemplo:

~]# vim -c "set backupcopy=yes" /etc/named.conf

Pero si editas el archivo al reiniciar el servicio observas que el mismo se ha modificado en la ruta chroot.

En los clientes:



Nota: se adicionó un servicio en un cliente del segmento de red interno con ip 192.168.2.7/24 que presta un servicio web.

Como ya existe servicio de dominio, entonces buscará las ips correspondientes a un nombre, en neustro caso le dijimos que si se escribe un alias www.intranet.edu, buscará la ip 192.168.2.7/24

Si te gustó, estate atento a nuestro blog y canal de youtube, porque al igual que Debian y Ubuntu se complementará con soporte a php y mysql para instalar wordpress :)

No hay comentarios.:

Publicar un comentario

VirtualBox 6.1 en Bodhi Linux (Ubuntu 22.04 LTS)

 ¡Hola chicos! En esta entrada escribimos los pasos que he seguido para tener Virtualbox funcionando en Bodhi Linux, también agregamos nuest...