Búsqueda de sitios web

Configuración de Bind como servidor DNS privado en RHEL 8


El Sistema de nombres de dominio (DNS) es un método utilizado para traducir nombres de dominio legibles por humanos (o nombres de dominio completos (FQDN )) a direcciones IP legibles por máquina, para localizar un ordenador en una red como Internet.

En sistemas informáticos y de redes, esto es necesario porque, aunque los FQDN son fáciles de recordar y usar para los humanos, las computadoras (clientes) acceden a recursos o servicios en otras computadoras (servidores) basándose en direcciones IP.

En este sentido, un servidor DNS (también conocido como servidor de nombres) mantiene un directorio de FQDN y los traduce a direcciones IP; también puede devolver una dirección IP cuando se proporciona un nombre de host/FQDN. Existen diferentes tipos de servidores DNS, incluido el servidor de nombres autorizado, el servidor de nombres de almacenamiento en caché y muchos otros.

En este artículo, lo guiaremos a través de los pasos para instalar y configurar un servidor DNS autorizado, privado/interno en RHEL 8 utilizando el software de código abierto BIND.

Requisitos:

  1. RHEL 8 con instalación mínima
  2. RHEL 8 con suscripción RedHat habilitada
  3. RHEL 8 con dirección IP estática

Mi entorno de prueba:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

Paso 1: Instalar Bind DNS en RHEL 8

1. Para instalar bind y sus utilidades en su servidor, ejecute el siguiente comando cdnf.

dnf install bind bind-utils

2. A continuación, inicie el servicio DNS por ahora, luego habilítelo para que se inicie automáticamente al iniciar el sistema y verifique si está funcionando usando los comandos systemctl.

systemctl start named
systemctl enable named
systemctl status named

Paso 2: Configurar BIND DNS en RHEL 8

3. Para configurar el servidor Bind DNS, primero debe realizar una copia de seguridad del archivo de configuración original /etc/named.conf usando el siguiente cp dominio.

cp /etc/named.conf /etc/named.conf.orig

4. Ahora abra el archivo de configuración /etc/named.conf para editarlo usando su editor de texto de línea de comando favorito de la siguiente manera.

vi /etc/named.conf 

En la sección de configuración opciones, comente las siguientes líneas.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. A continuación, busque el parámetro allow-query y establezca su valor en su red, lo que significa que solo los hosts de su red local pueden consultar el servidor DNS.

allow-query  {localhost; 192.168.56.0/24}

Paso 3: creación de las zonas DNS directa e inversa

Una Zona de reenvío es donde se almacenan las relaciones entre el nombre de host (o FQDN) y la dirección IP; devuelve una dirección IP utilizando el nombre de host. Tenga en cuenta que las consultas DNS normales son consultas de búsqueda directa. Por otro lado, una Zona inversa devuelve el FQDN de un host en función de su dirección IP.

6. Para definir las zonas adelante y inversa, agregue las siguientes líneas al final de /etc/named.conf archivo.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

Expliquemos brevemente las opciones en las configuraciones de zona anteriores:

  • tipo: Define el rol de este servidor para la zona. El valor "master" significa que es un servidor autorizado donde se mantiene la copia maestra de los datos de la zona.
  • archivo: especifica el archivo de base de datos de la zona.
  • allow-update: especifica los hosts que permitieron enviar actualizaciones de DNS dinámico para las zonas maestras. Ninguno en este caso.

Paso 4: Crear un archivo de zona DNS directo

7. Primero, cree un archivo de zona de reenvío en el directorio /var/named.

vi /var/named/tecmint.lan.db

Agregue la siguiente configuración en él.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

Expliquemos brevemente la definición de zona anterior y los parámetros.

  • TTL: especifica el tiempo de vida de la directiva RR y $TTL proporciona un TTL predeterminado para cada RR sin un conjunto de TTL específico.
  • @: Es un alias para el nombre de dominio (por ejemplo, tecmint.lan) definido en el archivo de configuración principal.
  • IN: significa Internet.
  • SOA: especifica el Inicio de la autoridad: quién es el servidor de nombres autorizado (dns-primary.tecmint.lan), la información de contacto del administrador ( admin.tecmint.lan, el signo @ se reemplaza por un punto) y otra información relacionada.
  • NS: significa servidor de nombres.
  • Serial: el servidor DNS utiliza este valor para verificar que el contenido de un archivo de zona en particular esté actualizado.
  • Actualizar: especifica con qué frecuencia un servidor DNS esclavo debe realizar una transferencia de zona desde el maestro.
  • Reintentar: especifica con qué frecuencia un esclavo debe reintentar una transferencia de zona fallida.
  • Caducar: determina cuánto tiempo debe esperar un servidor esclavo antes de responder la consulta del cliente cuando un maestro es inalcanzable.
  • Mínimo: establece el TTL mínimo para la zona.
  • A: una dirección de host.

Paso 5: Crear un archivo de zona DNS inverso

8. De manera similar, cree un archivo de zona inversa en el directorio /var/named.

vi /var/named/tecmint.lan.rev

Luego agregue las siguientes líneas en él. Aquí, el PTR es lo opuesto al registro A utilizado para asignar una dirección IP a un nombre de host.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. Establezca los permisos de propiedad correctos en los archivos de zona de la siguiente manera.

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. Finalmente, verifique que la configuración DNS y los archivos de zona tengan la sintaxis correcta después de realizar los cambios anteriores, usando la utilidad named-checkconf (sin salida significa que no hay error):

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. Una vez que haya realizado toda la configuración necesaria, deberá reiniciar el servicio DNS para que los cambios recientes surtan efecto.

systemctl restart named

12. A continuación, antes de que cualquier cliente pueda acceder a las configuraciones del servicio DNS en el servidor, debe agregar el servicio DNS en la configuración del firewall del sistema y volver a cargar la configuración del firewall usando la utilidad firewall-cmd, de la siguiente manera :

firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

Paso 6: Probar el servicio DNS desde un cliente

13. En esta sección, mostraremos cómo probar el servicio DNS desde el lado del cliente. Inicie sesión en la máquina cliente y configúrela para usar el servidor DNS anterior. En un sistema Linux, abra el archivo /etc/resolve.conf usando su editor de texto favorito.

vi /etc/resolve.conf 

Agregue la siguiente entrada, que le indica al solucionador que use el servidor de nombres especificado.

nameserver  192.168.56.100

Guarde el archivo y ciérrelo. Tenga en cuenta que también debe especificar el servidor DNS en el archivo de configuración de la interfaz de red.

14. Agregue la IP del servidor DNS 192.168.56.100 como solucionador al archivo de configuración de la interfaz de red de la máquina cliente /etc/sysconfig/network-scripts/ifcfg-enp0s3< como se muestra en la siguiente figura.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. Luego use la utilidad nslookup para consultar la IP usando el nombre de host y viceversa, de www, mail y docs< servidores en su red como se muestra.

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

Resumen

En este artículo, hemos mostrado cómo instalar y configurar un servidor DNS privado y autorizado en RHEL 8 utilizando el software BIND. Esperamos que todo haya funcionado bien para usted; de lo contrario, envíenos sus consultas o cualquier otro comentario a través del formulario de comentarios a continuación.