4.4. Configuración del servicio

4.4.1. Configuración clientes

4.4.1.1. Windows

GUI

El servicio cliente DNS debe estar en funcionamiento en el sistema(por defecto lo está). Programas -> Herramientas Administrativas -> Servicios

NAS Diagram

Las propiedades se realizan desde la configuración de las tarjetas de red, junto con el resto de parámetros de red.

Conf. DNS windows GUI

Línea de comandos

En PowerShell, a través de los siguientes comandos:

PS C:\> Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("10.0.0.1","10.0.0.2")
PS C:\> Get-DnsClientServerAddress

4.4.1.2. Linux

GUI

Los entornos gráficos (Gnome ,KDE….) proporcionan utilidades para la configuración de los clientes DNS en la configuración de las interfaces de red(muy parecido a Windows).

conf. DNS Linux GUI

Línea de comandos

Si nuestra configuracion la realizamos sin GUI, debemos ubicar el fichero correspondiente, teniendo en cuenta que éste puede variar de una distro o version a otra.

El fichero sobre el que trabajan la mayoria de las distribuciones es /etc/resolv.conf(actualmente en muchos sistemas esto no es tan simple, y lo gestiona el demonio systemd) que guarda las direcciones IP de los servidores DNS. En nuestras distros ya sabemos que esta configuración se realiza en el fichero .yaml de netplan.

nameservers:
    addresses: [10.10.10.1, 1.1.1.1]

4.4.2. Configuración básica servidor

4.4.2.1. Windows

En este módulo no trataremos la instalación y configuración de controladores de dominio(AD), aunque Active Directory necesita de DNS para poder trabajar correctamente.

GUI

De manera visual a traves de la interfaz gráfica que ofrece Windows 20XX Server y la instalación de roles y características.

Puedes encontrar un ejemplo de configuración paso a paso en el siguiente video:


Línea de comandos 1

  • Instalación. Podemos ejecutar el siguiente comando para buscar el nombre del rol que debemos instalar
    Get-WindowsFeature | where {($_.name -like “DNS”)}
    #con el comando anterior averiguamos y ahora lo instalamos
    Install-WindowsFeature DNS -IncludeManagementTools
    
  • Ponemos a escuchar al servidor únicamente por las interfaces que queramos(en nuestros escenarios en la tarjeta local):
    dnscmd /resetlistenaddresses 192.168.200.254
    
  • Configuramos los reenviadores(forwarders). Serán las direcciones IP a las que el servidor DNS reenvía las consultas DNS cuando no puede resolverlas de forma local.
    dnscmd /resetforwarders 8.8.8.8
    
  • Creación de una zona de búsqueda PRIMARIA y su correspondiente zona INVERSA
    PS C:\> Add-DnsServerPrimaryZone -ZoneName "asir.com" -ZoneFile "asir.com.dns" -verbose -passthru
    PS C:\> Add-DnsServerPrimaryZone -NetworkId "192.168.200.0/24" -ZoneFile "200.168.192.in-addr.arpa.dns" -verbose -passthru
    
  • Creación de los registros(RR) que deseemos

    Podemos hacer uso de la instrucción Add-DnsServerResourceRecord o del comando DNSCmd/recordadd
    #añadir un NS (Servidor de nombres para zonas secundarias...)
    Add-DnsServerResourceRecord -Name "asir.com" -NameServer "ns2.asir.com" -NS -ZoneName "asir.com"
    #añadir un host(A) con su PTR para lo zona inversa correspondiente
    Add-DnsServerResourceRecord -ZoneName "asir.com" -A -Name "www" -IPv4Address "192.168.200.5"
    Add-DnsServerResourceRecordPtr -Name "5" -ZoneName "200.168.192.in-addr.arpa" -PtrDomainName "www.asir.com"
    #añadir un alias(CNAME)
    Add-DnsServerResourceRecord -CName -Name "www2" -HostNameAlias "www.asir.com" -ZoneName "asir.com" -AllowUpdateAny
    #añadir un servidor de correo(MX) para mi dominio con una preferencia de 10. Debo añadir un registro tipo A para que me traduzca nombre por IP.
    Add-DnsServerResourceRecord -ZoneName "asir.com" -A -Name "mail" -IPv4Address "192.168.200.6"
    Add-DnsServerResourceRecord -Name "." -MX -ZoneName "asir.com" -MailExchange "mail.asir.com" -Preference 10
    
  • Exportar/Importar configuración de zona/s del DNS server a fichero/s de texto.
    #guarda los ficheros en C:\Windows\System32\dns
    #también guardo la zona inversa
    dnscmd /zoneexport "asir.com" "asir.com.cseg" #también con Export-dnsservervzone se podría hacer
    dnscmd /zoneexport "asir.com" "asir.com.cseg"
    #para importar, renombro los ficheros anteriores a acabados en .dns (sustituyendo el .cseg)
    #deben estar ubicados en C:\Windows\System32\dns
    dnscmd /zoneadd "asir.com" /primary /file "asir.com.dns" /load
    dnscmd /zoneadd "200.168.192.in-addr.arpa" /primary /file "200.168.192.in-addr.arpa.dns" /load
    

4.4.2.2. Linux

BIND o DnsMasq son los paquetes utilizados en todas las distribuciones Linux, sin interfaz gráfica añadida. Su administración configuración se realiza accediendo a varios ficheros de texto (INCLUIDO EL FICHERO DE ZONA).

En nuestro caso vamos a optar con configurar el servidor BIND2. Podemos encontrar alternativas gráficas para poder configurar BIND, a través de la instalación de un panel de administración, como Webmin:

Pantalla webmin administración BIND

Debemos entender la estructura de ficheros que monta BIND una vez instalado, para poder realizar correctamente su configuración:

Ficheros instalador por BIND
La configuración de BIND se encuentra en named.conf, la cual se distribuye con el uso de la directiva include, entre los ficheros:
  • named.conf.options: Parámetros a nivel global del servidor DNS.

  • named.conf.local: Aquí se crean las zonas con la instrucción zone. Uno de los parámetros será la ubicación y nombre del fichero de zona.

  • named.conf.default-zones: Algunas zonas que incluye BIND por defecto.

  • db.*: ficheros de zona creadas en named.conf.default-zones. db.root=srv. Raiz.

  • db.empty: plantilla de fichero de zona.

Se crea un usuario bind que pertenece al grupo principal bind que también se crea. Este usuario es el que ejecuta el demonio /usr/sbin/named, al que se le pasan los argumentos especificados en /etc/default/bind9. En /var/cache/bind, referencia para todas las rutas relativas (instrucción directory en el fichero de options), es donde crearemos nuestros ficheros de zona por defecto.

Podemos gestiónar el servicio con los siguiente comandos (podemos elegir entre las dos opciones):

$sudo service bind9 [restart|start|stop|status]
$sudo systemctl [restart|start|stop|status] bind9

En el siguiente video encontrarás un ejemplo de configuración muy sencillo:


¿Sabrías?
Realizar la instalación de un servidor DNS MAESTRO que únicamente atienda peticiones en la tarjeta local en cada uno de los tres SSOO que has virtualizado anteriormente

4.4.3. Ampliando nuestra configuración

A partir de aquí podemos trabajar sobre escenarios más complejos en los que podremos incluir:

  • Servidores maestros

  • Servidores esclavos

  • Delegaciones de zona

    Perfil En el siguiente documento puedes encontrar un manual completo de como realizar esto tanto en Windows como en Linux.

    Tutorial configuración servidores DNS


    PRÁCTICA 1
    Realiza la práctica 1 del Tema 3 del aula virtual, vas a crear tu sistema de servidores DNS.

4.4.4. Juntando todo(DDNS)

El DNS dinámico(Dynamic DNS) es un servicio que puede ser de gran utilidad en la mayoría de ocasiones en aplicaciones reales. El DNS dinámico garantiza que los usuarios puedan seguir accediendo al dispositivo o servicio mediante el nombre de dominio. No necesitan rastrear ni actualizar la dirección IP manualmente.3.

conf. DNS Linux GUI

¿Se te pueden ocurrir situaciones en lo que esto sea de utilidad?¿Qué ventajas podría tener?

Puedes encontrar multitud de recursos en la web para poder orientarte en la configuración de esta característica para nuestros servidores DNS. Por ejemplo puedes acceder al siguiente enlace y realizar las tareas correspondientes en tu servidor. Para que los servicios de DHCP y DNS puedan trabajar en conjunto, necesitaremos una clave, en nuestro caso, usaremos una clave usando el algoritmo HMAC-MD5 y la generaremos con el nombre DDNS_UPDATE.

Todo ello lo incluiremos en un fichero que posteriormente incorporaremos a la configuración tanto de DHCP como de DNS.

generación claves ddns

Ahora copiaremos el archivo a los directorios de cada servicio, y les daremos los permisos y propietarios necesarios para que éstos puedan hacer uso del archivo que acabamos de crear:

comandos previos DDNS

Tras esto ya podemos comenzar a configurar nuestros servicios

Configuración DNS:

Modificamos el archivo /etc/bind/named.conf.local para definir las zonas (directa e inversa) con las que vamos a trabajar, es muy importante incluir el archivo ddns.key que se encuentra en /etc/bind/ddns.key y luego permitir actualizaciones (allow-update) con el nombre de la misma clave.

config DDNS en Bind

Comprobamos todo. Atento-a a los distintos parámetros y nombres utilizados. TODO ha de mantener una coherencia.

test DDNS en Bind

Configuración DHCP:

Para configurar el servicio DHCP editaremos el archivo /etc/dhcp/dhcpd.conf y configuraremos los siguientes valores de la siguiente manera:

config DDNS en Bind

Comprobación:

¿Cómo comprobamos el funcionamiento de todo? Si conectamos un cliente veremos algunas cosas nuevas sucediendo:

test DHCP en Bind

.

¡Atención!
La linea marcada en rojo al final de la imagen anterior...¿Qué crees que significa?¿Cómo puedes solucionarlo?



  1. Fuente: Podemos optar por utilizar el Módulo DnsServer PowerShell o aprovoechar la sencillez del Comando DNSCMD

  2. Ayuda: Puedes encontrar un manual muy completo sobre DNS y BIND el siguiente enlace

  3. Fuente: Puedes encontrar una explicación muy buena en la documentación de AWS sobre DDNS