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 :)