06 Fundamentos de DNS en Linux

Published Apr 8, 2023

Linuxnetworking

🧠 Introducción

¿Alguna vez te has preguntado cómo sabe tu computadora a qué servidor conectarse cuando escribes una dirección como google.com?

Eso es gracias al DNS (Domain Name System), un sistema que convierte nombres fáciles de recordar en direcciones IP que las máquinas entienden.

En esta lección aprenderás:

  • Qué es DNS y cómo funciona.
  • Cómo usar herramientas como dig para investigar dominios.
  • Cómo modificar el archivo hosts para redirigir dominios.
  • Qué son los registros DNS más comunes.
  • Y cómo protegerte de técnicas como el DNS Spoofing.

1. ¿Qué es el DNS?

DNS (Domain Name System) es el sistema que traduce nombres de dominio legibles por humanos (como google.com) en direcciones IP (como 172.217.0.46).

Así funciona:

  1. Escribes una dirección web.
  2. Tu sistema consulta un servidor DNS.
  3. El servidor responde con la IP correspondiente.
  4. Tu navegador se conecta a esa IP.

Sin DNS tendríamos que memorizar números, ¡y nadie quiere eso!

2. Usando DIG para Consultas DNS

dig (Domain Information Groper) es una herramienta de línea de comandos que te permite consultar información DNS de cualquier dominio.

🔍 Consulta básica

dig google.com

Esto devuelve información como:

  • IP asociada (registro A)
  • Estado de la consulta
  • Servidores que respondieron

🎯 Consultar registros específicos

  • NS (Name Server): Servidores DNS autoritativos
dig google.com ns
  • MX (Mail Exchange): Servidores de correo
dig google.com mx
  • TXT: Información adicional como SPF o verificaciones de dominio
dig google.com txt
  • ANY: Todos los registros disponibles
dig google.com any

🧠 ¿Qué significan los resultados?

  • HEADER: Tipo de consulta, código de estado, ID.
  • FLAGS:
    • qr: Respuesta.
    • rd: Consulta recursiva.
    • ra: Recursividad aceptada.
  • SECCIONES:
    • QUESTION: Lo que preguntaste.
    • ANSWER: Respuesta del DNS.
    • AUTHORITY: Qué servidores son responsables.
    • ADDITIONAL: Datos extras como TTL o claves.

3. Conociendo los Registros DNS Más Comunes

  • A: Dirección IPv4 del dominio.
  • AAAA: Dirección IPv6.
  • MX: Servidores de correo.
  • NS: Servidores autoritativos.
  • TXT: Información libre (SPF, verificaciones de Google, etc.).

4. Cambiar Manualmente el Servidor DNS

El archivo /etc/resolv.conf define qué servidor DNS usará tu sistema.

👁️ Ver contenido actual:

head /etc/resolv.conf

⚙️ Cambiar DNS temporalmente:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

⚠️ Nota: En muchos sistemas modernos con systemd-resolved, este archivo se sobrescribe. Para cambios permanentes usa nmcli o edita configuraciones del gestor de red.

5. El Archivo /etc/hosts

Este archivo permite asociar manualmente un dominio a una dirección IP. Ideal para pruebas.

📄 Ubicación:

/etc/hosts

🧱 Formato:

IP    dominio

💡 Ejemplo:

CopyEdit
127.0.0.1   localhost
192.168.1.10   myserver.local

🛠️ Usos comunes:

  1. Bloquear sitios localmente:
127.0.0.1 facebook.com
  1. Redirigir dominios a servidores locales durante desarrollo.

⚠️ Advertencia

Modificar este archivo puede ser usado con fines maliciosos (DNS Spoofing). Asegúrate de saber qué estás cambiando.

6. ¿Qué es el DNS Spoofing?

Es una técnica donde un atacante responde con información falsa a una consulta DNS, redirigiendo al usuario a un sitio malicioso.

🧪 Herramientas que pueden usarse para esto:

  • Ettercap
  • Bettercap
  • Responder

⚠️ ¡Usa estas herramientas solo en entornos controlados y con permiso! Su mal uso puede ser ilegal.

7. Ejemplo Completo con DIG

🔹 Consultas básicas

dig google.com

🔹 Consultas avanzadas

dig google.com ns
dig google.com mx
dig google.com txt

🔹 Usar un DNS específico

dig @1.1.1.1 elprogramadorgt.fun
dig @8.8.8.8 elprogramadorgt.fun

🧪 Práctica Recomendada

  1. Usa dig para consultar registros A y MX de tus sitios favoritos.
  2. Redirige temporalmente un dominio a 127.0.0.1 editando /etc/hosts (luego prueba accediendo desde el navegador).
  3. Cambia tu servidor DNS a 1.1.1.1 con resolv.conf y repite consultas.
  4. Usa curl ifconfig.me para ver tu IP pública.
  5. Compara respuestas DNS usando servidores como 1.1.1.1 y 8.8.8.8.

📘 Próximos Pasos

  • Aprende a usar nslookup y whois.
  • Investiga cómo funciona DNSSEC y por qué es importante.
  • Profundiza en configuraciones DNS para servidores propios (como BIND9).
  • Explora cómo usar tcpdump o wireshark para ver tráfico DNS en tiempo real.

🧠 Conclusión

DNS es una de las piezas fundamentales de Internet.

Saber cómo se resuelven los nombres de dominio y cómo consultar o manipular esta información en Linux te da control, conocimiento y una gran ventaja como desarrollador, administrador o auditor de seguridad.

Sigue explorando, probando comandos y cuestionando cómo funciona lo que ves. ¡Así se avanza! 🚀