Configuración de DNS en CentOS

Configuración de DNS en CentOS

Paso 1: Instalar los paquetes necesarios

Antes de empezar a ver las siguientes instrucciones, nos gustaría señalar que ya tenemos una guía general para configurar el DNS estándar en Linux en nuestro sitio web. Te recomendamos que lo utilices si quieres configurar los ajustes para la navegación normal por Internet. A continuación mostraremos cómo instalar un servidor DNS local básico con el lado del cliente.

Lea también: Configuración de DNS en Linux

Como medio para crear un servidor DNS local, recomendamos utilizar bind9. La configuración de los siguientes archivos de configuración también se basará en el comportamiento general de este componente. Por defecto bind9 falta en el sistema operativo, así que vamos a empezar por añadirlo.

  1. Haz funcionar la consola de la manera que quieras. Está bajo «Aplicaciones».«Favoritos». o se abre con un atajo de teclado estándar Ctrl + Alt + T.
  2. Aquí tendrás que introducir un comando sudo yum install bind bind-utils -y y luego haga clic en Entre en para activarlo.
  3. Esta acción se realiza como superusuario (sudo), por lo que tendrá que confirmar la cuenta introduciendo la contraseña en la línea que aparece.
  4. Espere a que se complete la descarga e instalación de los paquetes.

Una vez completado este proceso, se le notificará que todos los paquetes se han añadido con éxito al sistema. Después de eso, proceda al siguiente paso.

Paso 2: Configuración global del servidor DNS

Ahora queremos demostrar exactamente cómo se edita el archivo de configuración principal, así como qué líneas se añaden allí. No vamos a entrar en cada línea por separado, porque nos llevaría demasiado tiempo, y puedes encontrar toda la información que necesitas en la documentación oficial.

  1. Para editar los objetos de configuración puede utilizar cualquier editor de texto. Le sugerimos que instale un práctico nanoescribiendo en la consola sudo yum install nano.
  2. Se descargarán todos los paquetes necesarios y, si ya están presentes en la distribución, se le notificará «No hay nada que correr»..
  3. Empecemos a editar el propio archivo. Ábrelo con sudo nano /etc/named.conf. Si es necesario, sustituya el editor de texto deseado, entonces la cadena resultará así: sudo vi /etc/named.conf.
  4. A continuación damos el contenido para pegar en el archivo que se abre, o verificar con un archivo existente añadiendo las líneas que faltan.
  5. Después de eso, haga clic en Ctrl + Opara registrar los cambios.
  6. No es necesario que cambie el nombre del archivo, simplemente haga clic en Entre en.
  7. Salga del editor de texto a través de Ctrl + X.

Como se ha mencionado anteriormente, tendrá que insertar ciertas líneas en el archivo de configuración que establecen las reglas generales para el comportamiento del servidor DNS.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

opciones {
listen-on port 53 { 127.0.0.1; 192.168.1.101;}; ### IP del DNS maestro ###
## listen-on-v6 port 53 { ::1; };
directorio «/var/named»;
archivo de volcado «/var/named/data/cache_dump.db»;
archivo de estadísticas «/var/named/data/named_stats.txt»;
Archivo de estadísticas de memoria «/var/named/data/named_mem_stats.txt»;
allow-query { localhost; 192.168.1.0/24;}; ### Rango de IP ###
allow-transfer { localhost; 192.168.1.102; }; ### IP del DNS esclavo ###

/*
– Si está construyendo un servidor DNS AUTORIZADO, NO habilite la recursión.
– Si está construyendo un servidor DNS RECURSIVO (con caché), necesita habilitar
la recursividad.
– Si su servidor DNS recursivo tiene una dirección IP pública, DEBE habilitar el acceso
control para limitar las consultas a sus usuarios legítimos. Si no lo hace, podrá
hacer que su servidor forme parte de la amplificación de DNS a gran escala
ataques. La implementación de BCP38 dentro de su red sería muy
reducir dicha superficie de ataque
*/
[Respirando fuertemente]

dnssec-enable yes;
dnssec-validación sí;
dnssec-lookaside auto;

/* Ruta de acceso a la clave ISC DLV */
archivo bindkeys «/etc/named.iscdlv.key»;

managed-keys-directory «/var/named/dynamic»;

Archivo pid «/run/named/named.pid»;
archivo de claves de sesión «/run/named/session.key»;
};

registro {
canal default_debug {
archivo «data/named.run»;
dinámica de la gravedad;
};
};

zona «.» IN {
tipo de pista;
archivo «named.ca»;
};

zona «unixmen.local» IN {
tipo maestro;
archivo «forward.unixmen»;
allow-update { none; };
};
zona «1.168.192.in-addr.arpa» IN {
tipo maestro;
archivo «reverse.unixmen»;
allow-update { none; };
};

incluir «/etc/named.rfc1912.zones»;
incluir «/etc/named.root.key»;

Asegúrese de que todo está configurado exactamente como se muestra arriba, y luego pase al siguiente paso.

Paso 3: Creación de la zona de avance y retroceso

El servidor DNS utiliza las zonas directas e inversas para obtener la información de origen. La zona forward permite obtener la dirección IP por nombre de host, y la reverse a través de la IP da el nombre de dominio. El trabajo adecuado de cada zona debe ser proporcionado por reglas especiales, cuya creación proponemos a continuación.

  1. Para una zona directa, vamos a crear un archivo separado a través del mismo editor de texto. Entonces la línea se verá así: sudo nano /var/named/forward.unixmen.
  2. Se le notificará que se trata de un objeto vacío. Introduzca en él el contenido que se muestra a continuación:

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN A 192.168.1.101
    @ IN A 192.168.1.102
    @ IN A 192.168.1.103
    masterdns IN A 192.168.1.101
    secondarydns IN A 192.168.1.102
    client IN A 192.168.1.103

  3. Guarde los cambios y cierre el editor de texto.
  4. Ahora pasemos a la zona inversa. Requiere un archivo /var/named/reverse.unixmen.
  5. Esto también será un nuevo archivo vacío. Pégalo ahí:

    $TTL 86400
    @ IN SOA masterdns.unixmen.local. root.unixmen.local. (
    2011071001 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
    )
    @ IN NS masterdns.unixmen.local.
    @ IN NS secondarydns.unixmen.local.
    @ IN PTR unixmen.local.
    masterdns IN A 192.168.1.101
    secondarydns IN A 192.168.1.102
    client IN A 192.168.1.103
    101 IN PTR masterdns.unixmen.local.
    102 IN PTR secondarydns.unixmen.local.
    103 IN PTR client.unixmen.local.

  6. Al guardar, no cambie el nombre del objeto, sólo pulse la tecla Entre en.

Los archivos especificados se utilizarán ahora para la zona de avance y retroceso. Si es necesario, debe editarlos exactamente para cambiar algunos parámetros. También puede leer sobre esto en la documentación oficial.

Paso 4: Iniciar el servidor DNS

Después de seguir todos los pasos anteriores, ya puede iniciar el servidor DNS para poder comprobar fácilmente su funcionamiento en el futuro y seguir configurando los ajustes importantes. Para realizar esta tarea, proceda como sigue

  1. En la consola, escriba sudo systemctl enable namedpara añadir el servidor DNS al autoarranque, de modo que se inicie automáticamente al arrancar el sistema operativo.
  2. Confirme esta acción introduciendo la contraseña de superusuario.
  3. Se le notificará que el enlace simbólico se ha creado, lo que significa que la acción ha tenido éxito.
  4. Ejecute la utilidad a través de systemctl start named. Se puede detener de la misma manera, sólo que sustituyendo la opción iniciar en stop.
  5. Cuando aparezca la ventana emergente de autenticación, introduzca la contraseña de root.

Como puede ver, el servicio anterior se gestiona de la misma manera que el resto de utilidades estándar, por lo que no debería suponer ningún problema incluso para los usuarios novatos.

Paso 5: Cambiar la configuración del cortafuegos

Para que el servidor DNS funcione correctamente, tendrá que abrir el puerto 53, lo que se hace a través del FirewallD estándar. В «Terminal». sólo serán necesarios tres simples comandos:

  1. La primera tiene la forma firewall-cmd --permanent --add-port=53/tcp y se encarga de abrir el puerto del protocolo TCP. Introdúzcalo en la consola y haga clic en Entre en.
  2. Debería recibir una notificación «Éxito»que indica que la regla se ha aplicado con éxito. A continuación, inserte la línea firewall-cmd --permanent --add-port=53/udp para abrir el puerto del protocolo UDP.
  3. Todos los cambios se aplicarán sólo después de reiniciar el cortafuegos, lo que se hace mediante el comando firewall-cmd --reload.

No tendrá que hacer más cambios en el cortafuegos. Manténgalo encendido en todo momento para que no tenga problemas de acceso.

Paso 6: Configurar los derechos de acceso

Ahora necesitaremos establecer permisos básicos y derechos de acceso para asegurar un poco el funcionamiento del servidor DNS y proteger a los usuarios ordinarios de poder cambiar la configuración. Haremos esto de la manera estándar y a través de SELinux.

  1. Todos los comandos posteriores deben ser activados como superusuario. Para evitar tener que introducir constantemente la contraseña, sugerimos habilitar el acceso root permanente para la sesión actual del terminal. Para ello, introduzca en la consola su.
  2. Especifique la contraseña de acceso.
  3. A continuación, escriba sucesivamente los siguientes comandos para crear la configuración de acceso óptima:

    chgrp named -R /var/named
    chown -v root:named /etc/named.conf
    restorecon -rv /var/named
    restorecon /etc/named.conf

Esto completa la configuración general del servidor DNS maestro. Lo único que queda es editar algunos archivos de configuración y comprobar si hay errores. Esto es lo que nos proponemos tratar en el siguiente paso.

Paso 7: Comprobación de errores y finalización de la configuración

Recomendamos comenzar con las pruebas de error para no tener que cambiar el resto de los archivos de configuración también en el futuro. Por eso lo cubriremos todo en un solo paso, además de proporcionar muestras de la salida correcta del comando para probarlo.

  1. Teclea. «Terminal». named-checkconf /etc/named.conf. Esto comprobará los parámetros globales. Si no hay salida, entonces todo está configurado correctamente. Si no, estudia el mensaje y, en base a él, resuelve el problema.
  2. A continuación, compruebe la zona directa insertando la línea named-checkzone unixmen.local /var/named/forward.unixmen.
  3. El ejemplo de salida es el siguiente: zone unixmen.local/IN: loaded serial 2011071001 OK.
  4. Más o menos lo mismo se hace con la zona inversa a través de named-checkzone unixmen.local /var/named/reverse.unixmen.
  5. La conclusión correcta debería ser ésta: zone unixmen.local/IN: loaded serial 2011071001 OK.
  6. Ahora pasemos a la configuración de la interfaz de red principal. En él hay que añadir los datos del servidor DNS actual. Para ello, abra el archivo /etc/sysconfig/network-scripts/ifcfg-enp0s3.
  7. Compruebe que el contenido es el que se muestra a continuación. Introduzca la configuración de los DNS si es necesario.

    TYPE="Ethernet"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    NAME="enp0s3"
    UUID="5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
    ONBOOT="yes"
    HWADDR="08:00:27:19:68:73"
    IPADDR0="192.168.1.101"
    PREFIX0="24"
    GATEWAY0="192.168.1.1"
    DNS="192.168.1.101"
    IPV6_PEERDNS="yes"
    IPV6_PEERROUTES="yes"

  8. Después de guardar los cambios, vaya al archivo /etc/resolv.conf.
  9. Sólo hay una línea que añadir aquí: nameserver 192.168.1.101.
  10. Una vez completado, sólo queda reiniciar la red o el ordenador para actualizar la configuración. El servicio de red se reinicia con el comando systemctl restart network.

Paso 8: Comprobar el servidor DNS instalado

Al final de la configuración, sólo queda comprobar el funcionamiento del servidor DNS existente tras añadirlo al servicio de red global. Esta operación también se realiza mediante comandos especiales. El primero de ellos se parece a dig masterdns.unixmen.local.

Esto debería dar lugar a una salida que tiene una representación similar a los contenidos que se muestran a continuación.

; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25179
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECCIÓN:
;; EDNS: versión: 0, flags:; udp: 4096
; SECCIÓN DE PREGUNTAS:
;masterdns.unixmen.local. EN A

;;SECCIÓN DE RESPUESTAS:
masterdns.unixmen.local. 86400 EN UN 192.168.1.101

; SECCIÓN DE AUTORIDAD:
unixmen.local. 86400 IN NS secondarydns.unixmen.local.
unixmen.local. 86400 IN NS masterdns.unixmen.local.

;; SECCIÓN ADICIONAL:
secondarydns.unixmen.local. 86400 EN UN 192.168.1.102

;; Tiempo de consulta: 0 mseg.
;; SERVIDOR: 192.168.1.101#53(192.168.1.101)
; CUANDO: mié 20 de agosto 16:20:46 IST 2014
;; MSG SIZE rcvd: 125

Un comando adicional le permitirá conocer el estado del funcionamiento del servidor DNS local. Para ello, inserte nslookup unixmen.local y haga clic en Entre en.

Esto debería mostrar tres representaciones diferentes de direcciones IP y nombres de dominio.

Server: 192.168.1.101
Address: 192.168.1.101#53

Nombre: unixmen.local
Dirección: 192.168.1.103.
Nombre: unixmen.local
Dirección: 192.168.1.101.
Nombre: unixmen.local
Dirección: 192.168.1.102.

Si la salida coincide con la que hemos especificado, entonces la configuración se ha completado con éxito y podemos pasar al lado del cliente del servidor DNS.

Configuración de la parte cliente del servidor DNS

No vamos a separar este procedimiento en distintos pasos, ya que se realiza editando un solo archivo de configuración. En él hay que añadir información sobre todos los clientes que se conectarán al servidor, y un ejemplo de esta configuración tiene el siguiente aspecto:

  1. Abrir el archivo /etc/resolv.conf con cualquier editor de texto conveniente.
  2. Añade líneas ahí. search unixmen.local nameserver 192.168.1.101 и nameserver 192.168.1.102, sustituyendo los necesarios por direcciones de clientes.
  3. Al guardar, no cambie el nombre del archivo, simplemente pulse la tecla Entre en.
  4. Después de salir del editor de texto, asegúrese de reiniciar la red global mediante el comando systemctl restart network.

Estos eran los puntos principales de la configuración del cliente del servidor DNS de los que queríamos hablar. Todos los demás matices sugerimos estudiarlos leyendo la documentación oficial, si es necesario.

Probar el servidor DNS

La última etapa de nuestro material de hoy es la prueba final del servidor DNS. A continuación puedes ver unos cuantos comandos que harán el truco. Utilice uno de ellos activando el «Terminal».. Si no hay errores en la salida, todo el proceso es correcto.

dig masterdns.unixmen.local
dig secondarydns.unixmen.local
dig client.unixmen.local
nslookup unixmen.local

Hoy has aprendido todo sobre la configuración del servidor DNS principal en la distribución CentOS. Como puede ver, toda la operación se centra en la introducción de comandos de terminal y en la edición de archivos de configuración, lo que puede causar cierta dificultad a los usuarios novatos. Sin embargo, basta con seguir las instrucciones al pie de la letra y leer los resultados de las comprobaciones para asegurarse de que todo va bien.

Nos alegramos de que hayamos podido ayudarle con su problema.

Describa lo que no le ha funcionado.
Nuestros especialistas tratarán de responder con la mayor rapidez posible.

¿Le ha ayudado este artículo?