Cómo verificar el DNS y la autenticación de correo electrónico de un dominio con dnsig

Cómo verificar el DNS y la autenticación de correo electrónico de un dominio con dnsig
dnsight – herramienta de código abierto en Python que combina CLI y SDK para verificar configuración DNS del dominio, así como los mecanismos de protección de correo relacionados: SPF, DKIM, DMARC, DNSSEC, MX, CAA y parte de los encabezados HTTP. En su papel dnsight se parece más a un auditor especializado de la configuración del dominio y de la entrega de correo que a un escáner universal de infraestructura. Ese enfoque es útil cuando hace falta entender con rapidez por qué un dominio supera o no las comprobaciones básicas de seguridad del correo, qué registros faltan y dónde la configuración parece incompleta o contradictoria.

Qué es la herramienta y qué hace dnsight

dnsight se distribuye como un único paquete que, tras la instalación, ofrece dos modos de uso. El primero es la línea de comandos, donde se pueden ejecutar auditorías de dominio, comprobaciones individuales y generación de ciertos registros. El segundo es una API para importar en Python, que permite integrar las comprobaciones en herramientas propias, canalizaciones o scripts internos. Para trabajos editoriales, de ingeniería o de DevSecOps este enfoque es cómodo porque la misma lógica está disponible tanto para ejecución manual como para automatización.

El proyecto se articula en torno a varios grupos temáticos de comprobaciones. En la CLI hay comandos audit, config, version y docs, además de grupos separados caa, dkim, dmarc, dnssec, headers, mx y spf. Parte de los grupos admite la subcomando generate, es decir, dnsight no solo verifica registros, sino que puede crear plantillas para ciertas configuraciones. La salida puede obtenerse en varios formatos, incluidos rich, json, sarif y markdown, por lo que los resultados se pueden integrar tanto en análisis manuales como en procesos de CI y en el intercambio de informes entre equipos.

En resumen: dnsight es más útil cuando se necesita una auditoría estrecha, repetible y formalizada del dominio y de la autenticación de correo sin desplegar una plataforma pesada.

dnsight se distribuye bajo la licencia MIT. Para la práctica de uso esa licencia es cómoda: el código puede incorporarse en proyectos comerciales e internos, modificarse y redistribuirse siempre que se conserve el texto de la licencia. En entornos corporativos este modelo suele ser más sencillo que licencias copyleft con requisitos más estrictos.

Funciones de la herramienta

La función principal de dnsight es auditar un dominio en varias áreas relacionadas. A continuación hay un mapa comprimido de capacidades.

Bloque Qué comprueba o hace Sentido práctico
audit Ejecución completa de comprobaciones sobre un dominio Instantánea rápida del estado de DNS y de la autenticación de correo
spf Comprobación de registros SPF y problemas asociados Ayuda a entender quién está autorizado a enviar correo en nombre del dominio
dkim Comprobación de firmas DKIM Indica si existe confirmación criptográfica de la autenticidad de los correos
dmarc Comprobación de DMARC y generación de registros Necesario para la política de tratamiento de correo e informes
mx Comprobación de registros MX Ayuda a ver adónde se dirige realmente el correo del dominio
dnssec Comprobación de DNSSEC Muestra si la cadena DNS está protegida contra suplantación
caa Comprobación de CAA Permite evaluar restricciones en la emisión de certificados
headers Comprobación y generación de algunos encabezados de seguridad Sale parcialmente del ámbito de DNS y ayuda con la higiene básica web
config Ejemplo de configuración, migración y validación Útil para ejecuciones repetibles y el modo manifest/config

Además, dnsight soporta autocompletado de shell a través de Typer y puede escribir la salida en archivo. En escenarios por comandos es útil también el comportamiento del registro. El diagnóstico va a stderr y los resultados de la comprobación a stdout. Gracias a esa separación la herramienta es más fácil de integrar en cadenas de shell y en automatización sin mezclar mensajes de servicio con salida legible por máquina.

Cómo funciona dnsight

La lógica de funcionamiento es simple. El usuario pasa el dominio al comando audit o a uno de los grupos especializados. Después dnsight realiza un conjunto de comprobaciones DNS, interpreta los registros obtenidos y devuelve el resultado en formato legible por humanos o por máquinas. Para un escenario básico bastan unas pocas instrucciones:

dnsight --help
dnsight audit example.com
dnsight config example > dnsight.yaml
dnsight dmarc generate

Si se necesita una llamada programática, la librería puede importarse en Python y ejecutar comprobaciones síncronas mediante run_domain_sync() y run_check_sync(). Ese modo es adecuado cuando la auditoría del dominio debe integrarse en un servicio existente, un bot, un entorno de pruebas o un trabajo de CI.

from dnsight import run_check_sync, run_domain_sync
 
audit = run_domain_sync("example.com")
print(audit.critical_count, audit.partial)
 
dmarc = run_check_sync("dmarc", "example.com")
print(dmarc.passed, len(dmarc.issues))

Los formatos de salida son especialmente útiles. Rich por defecto encaja para trabajo interactivo en terminal. JSON sirve para procesamiento posterior. SARIF es apropiado para integración en procesos de seguridad y escaneo de código. Markdown tiene sentido cuando se necesita un informe de texto simple para documentación, un ticket o una wiki interna.

Para quién es la herramienta

dnsight resulta adecuado para varias categorías de usuarios. Primero, para administradores de sistemas e ingenieros de infraestructura responsables de dominios, registros de correo y entregabilidad. Segundo, para equipos de DevSecOps y AppSec que requieren una forma automatizable de verificar dominios en canalizaciones. Tercero, para consultores, pentesters e investigadores que hacen auditorías iniciales del perímetro externo y desean recopilar rápidamente la situación de DNS y la autenticación de correo. Por último, dnsight puede ser útil para desarrolladores de plataformas internas porque el SDK permite incorporar las comprobaciones en servicios propios.

Al mismo tiempo, dnsight no es una herramienta para inventariar por completo la infraestructura de correo, analizar el contenido de informes DMARC o realizar una auditoría profunda de un servidor SMTP. La tarea de dnsight es más limitada: verificar señales y configuraciones alrededor del dominio.

Cómo instalar y ejecutar

Para la instalación se requiere Python 3.11 o superior. En la documentación del proyecto se indica que los mantenedores usan Python 3.14 como variante habitual para trabajo local y CI, pero el umbral oficial de compatibilidad comienza en 3.11. El paquete puede instalarse de varias maneras.

pip install dnsight
uv add dnsight
uv tool install dnsight
pipx install dnsight

Tras la instalación están disponibles tanto el comando CLI dnsight como la API importable. Para la primera ejecución basta consultar la ayuda y realizar una auditoría de prueba.

dnsight --help
dnsight audit example.com

Si se necesita un archivo de configuración para ejecuciones repetibles, se puede generar un ejemplo y guardarlo en dnsight.yaml. Para el desarrollo local del propio proyecto los mantenedores recomiendan uv y just, así como los comandos just install, just pre-install, just check y just test. La documentación se genera con MkDocs; la vista local se inicia con just docs-serve.

Fortalezas y limitaciones

Ventajas Desventajas
Combina CLI y API de Python en un mismo paquete Proyecto joven que aún no es un estándar de facto en su nicho
Cubre no solo SPF, DKIM y DMARC, sino también MX, CAA, DNSSEC y encabezados En los materiales oficiales aún no se aprecia un gran número de integraciones externas o una comunidad amplia
Soporta formatos adecuados para automatización: JSON, Markdown y SARIF Para evaluar la profundidad de comprobaciones concretas sigue siendo necesario consultar la documentación de cada grupo de comandos
Separa resultado y diagnóstico por stdout/stderr Requiere Python 3.11+, lo que puede ser una restricción en entornos internos antiguos
Dispone de documentación, autocompletado de shell y comandos de generación Desde fuera el proyecto parece orientado a una audiencia técnicamente preparada, no tanto a administradores principiantes

Conclusión

dnsight da la impresión de ser una herramienta especializada y bien cuidada para auditar dominios y la autenticación de correo. El valor principal de dnsight no está en la amplitud de cobertura, sino en la combinación de tres características: especialización temática, presencia de CLI y SDK en un mismo paquete y aptitud para la automatización gracias a los formatos de salida y a la configuración. Para equipos que necesitan comprobar con regularidad SPF, DKIM, DMARC, MX, DNSSEC y señales relacionadas, dnsight resulta una opción práctica.

dnsight también tiene limitaciones. La herramienta no sustituye una plataforma completa de análisis de incidentes de correo, no resuelve tareas de monitorización a largo plazo y exige al usuario comprensión del contexto DNS y de la autenticación de correo. Pero como auditor ligero, reproducible y técnicamente transparente para dominios, dnsight resulta apropiado. Por tanto, la valoración final es la siguiente: dnsight no es una solución universal, sino una herramienta utilitaria enfocada que cubre bien su reducido conjunto de tareas.

Alt text