Presentamos PostScale -- API de correo para envíos transaccionales, recepción y direcciones enmascaradas. PostScale

    Seguridad de correo con SPF, DKIM y DMARC

    Aprende cómo proteger tu dominio contra la suplantación de correo usando registros SPF, DKIM y DMARC. Guía paso a paso para configuración desde el panel de control y la API de DNScale.

    La suplantación de correo permite a los atacantes enviar mensajes que parecen provenir de tu dominio. Sin una autenticación adecuada, cualquiera puede enviar un correo afirmando ser de ceo@tudominio.com. SPF, DKIM y DMARC son estándares basados en DNS que ayudan a los servidores de correo receptores a verificar los correos legítimos.

    Lo que aprenderás

    • Cómo SPF declara los servidores de correo autorizados
    • Cómo DKIM firma criptográficamente los correos
    • Cómo DMARC define políticas para autenticación fallida
    • Configuración de los tres mediante el panel de control y la API de DNScale
    • Pruebas y validación de tu configuración

    SPF (Sender Policy Framework)

    Qué hace SPF

    SPF te permite especificar qué direcciones IP y servidores de correo pueden enviar correo en nombre de tu dominio. Los servidores receptores verifican tu registro SPF para confirmar que el remitente está autorizado.

    Sintaxis del registro SPF

    Un registro SPF es un registro TXT en el apex de tu dominio:

    v=spf1 [mecanismos] [calificador]all
    ComponenteDescripción
    v=spf1Identificador de versión (obligatorio)
    include:dominioPermitir servidores autorizados por el SPF de otro dominio
    aPermitir la IP del registro A del dominio
    mxPermitir los servidores MX del dominio
    ip4:x.x.x.xPermitir una dirección o rango IPv4 específico
    ip6:x::xPermitir una dirección o rango IPv6 específico
    ~allFallo suave para remitentes no autorizados
    -allFallo duro para remitentes no autorizados

    Ejemplos comunes de SPF

    Google Workspace:

    v=spf1 include:_spf.google.com ~all

    Microsoft 365:

    v=spf1 include:spf.protection.outlook.com ~all

    Múltiples proveedores:

    v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all

    Servidor de correo propio:

    v=spf1 ip4:203.0.113.5 mx ~all

    Mejores prácticas de SPF

    1. Comienza con ~all (fallo suave), cambia a -all después de las pruebas
    2. Mantén menos de 10 búsquedas DNS (límite de SPF)
    3. Incluye todas las fuentes de envío: correo transaccional, plataformas de marketing, etc.

    DKIM (DomainKeys Identified Mail)

    Qué hace DKIM

    DKIM agrega una firma digital a los correos salientes. Tu servidor de correo firma cada correo con una clave privada, y publicas la clave pública correspondiente en DNS. Los servidores receptores usan esta clave pública para verificar la firma, demostrando que el correo no fue alterado y provino de un remitente autorizado.

    Cómo funciona DKIM

    1. Tu servidor de correo genera una firma criptográfica usando una clave privada
    2. La firma se agrega a los encabezados del correo
    3. Los servidores receptores buscan tu clave pública DKIM en DNS
    4. Verifican que la firma coincida con el contenido del correo
    5. Si es válida, el correo pasa la autenticación DKIM

    Sintaxis del registro DKIM

    Un registro DKIM es un registro TXT en selector._domainkey.tudominio.com:

    selector._domainkey.tudominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCS..."
    EtiquetaDescripción
    v=DKIM1Identificador de versión
    k=rsaTipo de clave (generalmente RSA)
    p=...Clave pública (codificada en base64)
    t=s(Opcional) Modo estricto - coincidencia exacta de dominio requerida
    t=y(Opcional) Modo de prueba

    Selectores DKIM

    El selector es un nombre que identifica qué clave usar. Esto permite:

    • Rotación de claves sin tiempo de inactividad
    • Diferentes claves para diferentes servicios de correo
    • Múltiples claves activas simultáneamente

    Patrones comunes de selectores:

    • google para Google Workspace
    • selector1, selector2 para Microsoft 365
    • k1, k2, k3 para configuraciones personalizadas
    • mailjet, sendgrid para servicios de terceros

    Obtener tus claves DKIM

    Las claves DKIM son generadas por tu proveedor de correo. Aquí es donde encontrarlas:

    Google Workspace:

    1. Consola de Administración → Apps → Google Workspace → Gmail
    2. Autenticar correo → Generar nuevo registro
    3. Copia el valor del registro TXT

    Microsoft 365:

    1. Microsoft 365 Defender → Email & collaboration → Policies
    2. DKIM → Seleccionar dominio → Crear claves DKIM
    3. Copia ambos registros selector1 y selector2

    Servicios de terceros (SendGrid, Mailjet, etc.):

    • Revisa el panel de tu proveedor para la configuración DNS
    • Te proporcionarán el nombre del selector y la clave pública

    Ejemplos de registros DKIM

    Google Workspace:

    google._domainkey.tudominio.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

    Microsoft 365:

    selector1._domainkey.tudominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."
    selector2._domainkey.tudominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."

    Personalizado/Terceros:

    mail._domainkey.tudominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."

    Mejores prácticas de DKIM

    1. Usa claves de 2048 bits - Las claves de 1024 bits son cada vez más vulnerables
    2. Rota las claves periódicamente - Al menos anualmente por seguridad
    3. Mantén las claves privadas seguras - Nunca las expongas en DNS o logs
    4. Usa selectores únicos - Diferentes selectores para cada servicio
    5. Prueba antes de aplicar DMARC - Asegúrate de que DKIM pase antes de p=reject

    DMARC (Domain-based Message Authentication)

    Qué hace DMARC

    DMARC se construye sobre SPF (y DKIM) para proporcionar:

    • Una política que indica a los receptores qué hacer con los correos que fallan
    • Reportes para que puedas monitorear los resultados de autenticación

    Sintaxis del registro DMARC

    Un registro DMARC es un registro TXT en _dmarc.tudominio.com:

    v=DMARC1; p=politica; [etiquetas opcionales]

    Etiquetas obligatorias:

    EtiquetaDescripción
    v=DMARC1Identificador de versión
    p=none|quarantine|rejectPolítica para correos que fallan

    Etiquetas opcionales:

    EtiquetaDescripción
    rua=mailto:direcciónDestino de reportes agregados
    ruf=mailto:direcciónDestino de reportes forenses
    pct=100Porcentaje al que aplicar la política (predeterminado 100)
    sp=politicaPolítica para subdominios

    Opciones de política DMARC

    PolíticaAcciónCuándo usar
    p=noneSolo monitoreoConfiguración inicial
    p=quarantineEnviar a spamIntermedio
    p=rejectBloquear completamenteProtección total

    Ejemplos de DMARC

    Modo monitoreo:

    v=DMARC1; p=none; rua=mailto:dmarc-reports@tudominio.com

    Modo cuarentena:

    v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@tudominio.com; pct=100

    Modo rechazo:

    v=DMARC1; p=reject; rua=mailto:dmarc-reports@tudominio.com

    Implementación recomendada

    1. Semana 1-2: p=none para monitorear
    2. Semana 3-4: Revisar reportes, corregir problemas
    3. Semana 5-6: p=quarantine con pct=25
    4. Semana 7-8: Aumentar a pct=100
    5. Semana 9+: Cambiar a p=reject

    Configuración desde el panel de DNScale

    Crear registro SPF

    1. Inicia sesión en dnscale.eu
    2. Selecciona tu dominio
    3. Haz clic en Add Record
    4. Configura:
      • Name: Dejar vacío (apex)
      • Type: TXT
      • Content: v=spf1 include:_spf.google.com ~all
      • TTL: 3600
    5. Haz clic en Create Record

    Crear registro DKIM

    1. Obtén tu clave pública DKIM de tu proveedor de correo (ver "Obtener tus claves DKIM" arriba)
    2. Haz clic en Add Record
    3. Configura:
      • Name: google._domainkey (o el selector de tu proveedor)
      • Type: TXT
      • Content: v=DKIM1; k=rsa; p=MIIBIjANBgkq... (tu clave pública)
      • TTL: 3600
    4. Haz clic en Create Record

    Nota: Para Microsoft 365, necesitarás crear dos registros (selector1 y selector2).

    Crear registro DMARC

    1. Haz clic en Add Record
    2. Configura:
      • Name: _dmarc
      • Type: TXT
      • Content: v=DMARC1; p=none; rua=mailto:dmarc@tudominio.com
      • TTL: 3600
    3. Haz clic en Create Record

    Configuración desde la API de DNScale

    Autenticación

    export DNSCALE_API_KEY="your-api-key"

    Obtener ID de zona

    curl -s "https://api.dnscale.eu/v1/zones" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.zones[] | {id, name}'

    Crear registro SPF

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "@",
        "type": "TXT",
        "content": "v=spf1 include:_spf.google.com ~all",
        "ttl": 3600
      }'

    Crear registro DKIM

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "google._domainkey",
        "type": "TXT",
        "content": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...",
        "ttl": 3600
      }'

    Reemplaza google._domainkey con tu selector y la clave pública con tu clave DKIM real.

    Crear registro DMARC

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_dmarc",
        "type": "TXT",
        "content": "v=DMARC1; p=none; rua=mailto:dmarc@tudominio.com",
        "ttl": 3600
      }'

    Verificar registros

    curl -s "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.records[] | select(.type == "TXT")'

    Pruebas y validación

    Herramientas en línea

    Línea de comandos

    # Verificar SPF
    dig TXT tudominio.com +short
     
    # Verificar DKIM (reemplaza 'google' con tu selector)
    dig TXT google._domainkey.tudominio.com +short
     
    # Verificar DMARC
    dig TXT _dmarc.tudominio.com +short

    Enviar un correo de prueba

    La mejor manera de verificar que todo funciona es enviar un correo de prueba y revisar los encabezados:

    1. Envía un correo a una cuenta de Gmail
    2. Abre el correo → Haz clic en los tres puntos → "Mostrar original"
    3. Busca:
      • spf=pass
      • dkim=pass
      • dmarc=pass

    Resumen

    RegistroNombreTipoEjemplo
    SPF@TXTv=spf1 include:_spf.google.com ~all
    DKIMselector._domainkeyTXTv=DKIM1; k=rsa; p=MIIBIjAN...
    DMARC_dmarcTXTv=DMARC1; p=none; rua=mailto:dmarc@example.com

    Cómo funcionan juntos:

    • SPF verifica que el servidor de envío está autorizado
    • DKIM verifica que el contenido del correo no fue modificado
    • DMARC indica a los receptores qué hacer cuando SPF o DKIM fallan

    Orden de implementación recomendado:

    1. Configura SPF primero (el más fácil)
    2. Configura DKIM con tu proveedor de correo
    3. Agrega DMARC en modo monitoreo (p=none)
    4. Revisa reportes, corrige problemas
    5. Aumenta gradualmente la aplicación de DMARC (p=quarantinep=reject)