# Tema 2 - Instalación y administración de servicios de nombres de dominio (DNS) ## 1. Introducción DNS es el servicio que se usa en la resolución de nombres en redes TCP/IP, asocia nombres sencillos a direcciones IP numéricas, para facilitar el uso y la memorización. Este servicio almacena la información en bases de datos distribuidas y redundantes, asociadas y repartidas en diferentes servidores. ## 2. Sistemas de nombres - **Sistemas Planos:** No tienen una jerarquía ni un agrupamiento, es un método ya obsoleto dado que dificulta la gestión de grandes cantidades de datos (hosts.txt). - **Sistemas Jerárquicos:** Los nombres se agrupan y clasifican siguiendo una jerarquía (árbol invertido), permitiendo una gestión distribuida y autónoma. ## 3. Funciones y componentes DNS ### 3.1 Usos del servicio DNS 1. **Resolución de nombres (Búsqueda directa):** Se obtiene la dirección IP a partir de un nombre de dominio. 2. **Resolución inversa (Búsqueda inversa):** Se obtiene el nombre de dominio a partir de una dirección IP. 3. **Resolución de servidores de correo:** Permite obtener el servidor de correo de un dominio. ### 3.2 Componentes DNS 1. **Espacio de nombres de dominio:** Conjunto de nombres para identificar máquinas/servicios, estructurado como un árbol invertido. 2. **Base de datos DNS:** Base de datos distribuida y redundante, organizada en zonas que contienen Registros de recursos (RR). 3. **Servidores de nombres:** Guardan información de las zonas y responden consultas. 4. **Cliente DNS:** Software que realiza las consultas a los servidores DNS. ## 4. Estructura del espacio de nombres El sistema DNS no es plano, si no jerárquico (árbol invertido). **Jerarquía de árbol** 1. **Raíz (Root ```.```):** Es el punto de partida de todo el sistema. 2. **Dominios de primer nivel (TLD):** Cuelgan de la raíz. - **Genericos (gTLD):** ```.com```,```.org```,```.net```. - **Geograficos (ccTLD):** ```.es```,```.fr```. 3. **Dominios de segundo nivel:** Nombres registrados por organizaciones, ```google```,```google.com```. 4. **Subdominios/hosts:** Niveles inferiores gestionados por la organizacion, ```www```,```mail```,```ftp```. **Ejemplo de FQDN (Nombre de dominio completo)** ```mail.ventas.miempresa.com.``` - ```.``` (Raíz) - ```.com``` (Primer nivel) - ```.miempresa``` (Segundo nivel) - ```.ventas``` (Subdominio) - ```.mail``` (Subdominio) ## 5. Tipos de servidores DNS - **Servidor Maestro (Primario):** Tienen los archivos originales de la zona (base de datos). Aquí se hacen los cambios (lectura/escritura). - **Servidor Esclavo (Secundario):** Tiene una copia de solo lectura de los datos del maestro. Se suelen usar como balanceador de carga y tolerancia a fallos. - **Servidor Caché:** No tiene una zona propia, pregunta a otros servidores y guarda sus respuestas temporalmente para ir más rápido en futuras veces. - **Servidor Reenviador (Forwarder):** No sabe las respuestas, por lo que actua como un agente que se la pide a otro servidor. ## 5. Proceso de resolución Cuando se realiza una consulta dns, pueden ocurrir dos tipos: 1. **Consulta recursiva:** El cliente dice *Dame la IP, haz todo el trabajo*, el servidor busca hasta encontrarla y le da la respuesta final. 2. **Consulta iterativa:** El servidor *No lo sé, pero pregunta a este otro servidor*, el cliente va saltando de servidor en servidor. **Ejemplo de una consulta ```www.uclm.es```:** 1. El pc pregunta al DNS local (ISP). 2. Si no lo sabe, el DNS local pregunta a un **servidor raiz**. 3. El raiz le dice: *Pregunta al servidor que gestiona los ```.es```*. 4. El DNS local pregunta al ```.es```. 5. El servidor ```.es``` dice: *Pregunta al servidor de ```uclm.es```*. 6. El DNS local pregunta al servidor de UCLM, y este responde la IP de ```www```. ## 6. La base de datos DNS La información se guarda en archivos de zona usando diferentes tipos de registros: | Tipo | Descripción | Ejemplo | |-------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------| | SOA | Start of Authority. Define parámetros de la zona (tiempos de refresco, administrador, TTL). | `IN SOA ns1.ejemplo.com. admin.ejemplo.com. (...)` | | NS | Name Server. Indica qué servidores DNS tienen autoridad sobre la zona. | `ejemplo.com. IN NS ns1.ejemplo.com.` | | A | Asocia un nombre a una dirección IPv4. | `servidor IN A 192.168.1.10` | | AAAA | Asocia un nombre a una dirección IPv6. | `servidor IN AAAA FEC0::2AA...` | | CNAME | Canonical Name. Crea un alias o apodo para un nombre real. | `www IN CNAME servidor1` (Si servidor1 cambia de IP, www sigue funcionando). | | MX | Mail Exchange. Indica a qué servidor se debe enviar el correo electrónico. | `ejemplo.com. IN MX 10 correo.ejemplo.com.` | | PTR | Pointer. Resolución inversa (de IP a Nombre). | `10.1.168.192.in-addr.arpa IN PTR pc1.dominio.` | ## 7. Otros conceptos - **Delegacion:** Una organizacion puede ceder la gestion de un subdominio a otra entidad, ```uclm.es``` delega ```fi.uclm.es``` a la facultad de informatica. - **Delegación:** Una organización puede ceder la gestión de un subdominio a otra entidad, ```uclm.es``` delega ```fi.uclm.es``` a la facultad de informática. - **Transferencia de zona (AXFR/IXFR):** Es el proceso que hace el servidor esclavo para copiar los datos del maestro. Puede ser **completa** (todo el archivo) o **incremental** (solo cambios). - **DNS Dinámico (DDNS):** Permite a equipos con IP variables que actualicen automáticamente sus registros DNS. ## 8. Seguridad DNS es un objetivo frecuente de ataques, ya que se diseñó como un sistema abierto y no se contempló su seguridad. 1. **Principales amenazas** - **Envenenamiento de caché (DNS Cache Poisoning):** Es uno de los ataques más peligrosos. Un atacante *inyecta* registros falsos en la memoria caché del servidor DNS o del cliente, redirigiendo al usuario a sitios maliciosos. - **Ataques de denegación de servicio (DoS):** Buscan saturar un servidor con muchas peticiones, para que deje de dar servicio a usuarios legítimos. - **Suplantación del maestro:** Un atacante se hace pasar por el servidor primario y envía datos falsos a los servidores esclavos. - **Suplantación de fuentes dinámicas:** Un atacante se hace pasar por un cliente autorizado (como un servidor DHCP) para alterar los registros DNS dinámicamente. ### 8.1 Medidas de proteccion Para mitigar estos riesgos, podemos: - **Actualizar:** Mantener el servidor DNS actualizado, con los ultimos parches y correciones de seguridad. - **Privilegios mínimos:** Configurar el servicio para que no se ejecute como ```root``` o administrador total. - **Permisos de archivos**: restringir quien puede leer o modificar los ficheros de zona. - **Copias de seguridad**: Realizar backups frecuentes de los archivos de zona. - **Restringir la recursividad:** Configurar el servidor para que solo resuelva consultas recursivas solo si es estrictamente necesario. - **Filtrado de IP:** Limitar que direcciones IP tienen permiso para realizar consultas al servidor. - **Firmas de transacción (TSIG y TKEY):** Implementar mecanismos para asegurar la comunicación entre servidores usando claves generadas. ### 8.2 DNSSec DNSsec es un estándar que busca resolver las carencias de seguridad originales de DNS, utilizando criptografía asimétrica (claves públicas y privadas) y firmas digitales. **¿Que garantiza?** 1. **Autenticidad:** Asegura que la respuesta proviene realmente de un servidor autorizado 2. **Integridad:** Asegura que los datos no han sido modificados por una atacante durante el trayecto ## 9. Herramientas de diagnostico - ```ping```: Sirve para comprobar la conectividad y una resolucion simple. - ```nslookup```: Herramienta clásica de Windows/Linux para preguntar a un DNS específico. - ```dig```: Herramienta de Linux, muestra mucha información técnica. - ```whois```: Muestra información administrativa sobre quién registró un dominio.