BIND, también conocido como el "Dominio de nombres de Internet de Berkeley", es uno de los sistemas de nombres de dominio (DNS) más populares en la actualidad. Es de código abierto y proporciona servicios DNS en sistemas operativos Linux. En general, le ayuda a convertir un nombre de dominio completo en una dirección IP o una dirección IP en un nombre de dominio. Se puede utilizar como un servidor de nombres autoritativo y ofrece varias funciones, como equilibrio de carga, actualización dinámica, DNS dividido, etc.
En este tutorial, le mostraremos cómo configurar un servidor DNS privado con BIND en CentOS 8. En una nota relacionada, eche un vistazo a nuestro tutorial sobre la instalación y configuración de un servidor DNS (BIND) simple en Debian 9.
Requisitos
- Un CentOS 8 VPS (usaremos nuestro plan SSD 2 VPS)
- Acceso a la cuenta de usuario root (o acceso a una cuenta de administrador con privilegios de root)
A los efectos de este tutorial, utilizaremos la siguiente configuración:
Nombre de host: ns1.rosehosting.local
Dirección IP: 192.168.1.100
Red local: 192.168.1.0/24
Paso 1:Inicie sesión en el servidor y actualice los paquetes del sistema operativo del servidor
Primero, inicie sesión en su servidor CentOS 8 a través de SSH como usuario raíz:
ssh root@IP_Address -p Port_number
Deberá reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, reemplace "root" con el nombre de usuario de la cuenta de administrador si es necesario.
Antes de comenzar, debe asegurarse de que todos los paquetes de CentOS instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:
dnf update -y
Paso 2:Instalar el servidor BIND DNS
De forma predeterminada, el paquete de enlace está disponible en el repositorio estándar de CentOS 8. Puede instalarlo ejecutando el siguiente comando:
dnf install bind bind-utils -y
Una vez que BIND esté instalado, inicie el servicio BIND y habilítelo para que se inicie al reiniciar el sistema:
systemctl start named systemctl enable named
Paso 3:configurar el servidor BIND DNS
De forma predeterminada, el servidor BIND escucha solo en localhost. Por lo tanto, deberá configurarlo para escuchar en todas las interfaces de red. Puede configurarlo editando el archivo /etc/named.conf:
nano /etc/named.conf
Comente las siguientes líneas:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Cambie la siguiente línea para permitir la consulta de su red local:
allow-query { localhost;192.168.1.0/24; };
Guarde y cierre el archivo cuando haya terminado.
Paso 4:Crear zona DNS directa e inversa
Se utiliza una zona directa para resolver el nombre de host en la dirección IP, mientras que una zona inversa se utiliza para resolver la dirección IP en el nombre de host. En general, todas las consultas de DNS normales son consultas de búsqueda directa. Puede definir las zonas de búsqueda directa e inversa en el archivo /etc/named.conf.
Edite el archivo /etc/named.conf con el siguiente comando:
nano /etc/named.conf
Agregue las siguientes líneas al final del archivo
//Forward Zone zone "rosehosting.local" IN { type master; file "rosehosting.local.db"; allow-update { none; }; }; //Reverse Zone zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.db"; allow-update { none; }; };
Guarde y cierre el archivo cuando haya terminado.
Paso 5:Crear archivos de zona de avance y retroceso
A continuación, deberá crear archivos de zona de avance y retroceso definidos en el paso anterior. De forma predeterminada, todos los archivos de búsqueda de zona se encuentran dentro del directorio /var/named.
Primero, cree un archivo de zona de reenvío con el siguiente comando:
nano /var/named/rosehosting.local.db
Agregue las siguientes líneas:
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;IP address of Name Server ns1 IN A 192.168.1.100 ;A - Record HostName To Ip Address www IN A 192.168.1.101 ;CNAME record ftp IN CNAME www.rosehosting.local.
Guarde y cierre el archivo, luego cree un archivo de zona inversa con el siguiente comando:
nano /var/named/192.168.1.db
Agregue las siguientes líneas:
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;Reverse lookup for Name Server 100 IN PTR ns1.rosehosting.local. ;PTR Record IP address to HostName 101 IN PTR www.rosehosting.local.
Guarde y cierre el archivo cuando haya terminado.
Paso 6:Verificar la configuración de DNS
Después de configurar todos los archivos de zona, deberá verificar los archivos de configuración.
Primero, valide el archivo de configuración principal con el siguiente comando:
named-checkconf /etc/named.conf
Si todo está bien, no verá ningún error.
A continuación, verifique el archivo de zona de reenvío con el siguiente comando:
named-checkzone rosehosting.local /var/named/rosehosting.local.db
Deberías obtener el siguiente resultado:
zone rosehosting.local/IN: loaded serial 3 OK
A continuación, verifique el archivo de zona inversa con el siguiente comando:
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
Yu debería obtener el siguiente resultado:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
Finalmente, reinicie el servicio BIND para aplicar los cambios:
systemctl restart named
Paso 7:configurar el cortafuegos
A continuación, deberá crear una regla de firewall para el puerto 53 para permitir consultas de DNS desde las máquinas cliente. Puedes crearlo con el siguiente comando:
firewall-cmd --permanent --add-port=53/udp
A continuación, vuelva a cargar el servicio de firewall para aplicar los cambios:
firewall-cmd --reload
Paso 8:Verificar el servidor DNS
En este punto, el servidor BIND DNS está instalado y configurado. Es hora de comprobar si funciona o no.
Primero, edite su archivo /etc/resolv.conf y agregue la IP de su servidor DNS:
nano /etc/resolv.conf
Agregue la siguiente línea al principio del archivo:
nameserver 192.168.1.100
Guarde y cierre el archivo, luego verifique la búsqueda directa usando el comando dig:
dig www.rosehosting.local
O
dig ns1.rosehosting.local
Si todo está bien, debería obtener la siguiente respuesta:
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> www.rosehosting.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52518 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: cd9d365f1f02621aa9c8753c5fd47154db8cae737b9ca09f (good) ;; QUESTION SECTION: ;www.rosehosting.local. IN A ;; ANSWER SECTION: www.rosehosting.local. 86400 IN A 192.168.1.101 ;; AUTHORITY SECTION: rosehosting.local. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:24 EST 2020 ;; MSG SIZE rcvd: 128
A continuación, verifique la búsqueda inversa con el siguiente comando:
dig -x 192.168.1.100
Debería obtener la siguiente respuesta:
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> -x 192.168.1.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30878 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 18a66bab478cf57219e6c17c5fd471671887a1dd983fef57 (good) ;; QUESTION SECTION: ;100.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.1.168.192.in-addr.arpa. 86400 IN PTR ns1.rosehosting.local. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:43 EST 2020 ;; MSG SIZE rcvd: 148
¡Felicidades! Ha configurado con éxito un servidor DNS privado con BIND en CentOS 8.
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.