Servidor propio

Puedes servir la política MTA-STS desde cualquier servidor web con HTTPS. Necesitas cuatro cosas: un nombre DNS, un certificado, el fichero de política y dos registros TXT.

Si prefieres no mantener nada de esto, usa el MTA-STS alojado. Si tienes Kubernetes, el chart de Helm lo hace por ti.

1. Apunta mta-sts.<dominio> a tu servidor

Crea un registro A, AAAA o CNAME para mta-sts.example.com que llegue a tu servidor web.

2. Consigue un certificado

El certificado tiene que ser de una autoridad de confianza pública y cubrir mta-sts.example.com. Con Let's Encrypt:

sudo certbot certonly --nginx -d mta-sts.example.com

Con el certificado caducado, los remitentes no pueden descargar la política. Siguen con la copia de su caché y, cuando caduca, dejan de aplicar MTA-STS: tu correo pierde la protección sin que nada avise. Renueva el certificado de forma automática.

3. Publica el fichero de política

Crea /var/www/mta-sts/mta-sts.txt:

version: STSv1
mode: testing
mx: aspmx.l.google.com
mx: *.aspmx.l.google.com
max_age: 604800

Pon en mx todos tus servidores MX. Con Microsoft 365 es *.mail.protection.outlook.com. El RFC separa las líneas con CRLF; la mayoría de remitentes acepta también LF.

Sírvelo en https://mta-sts.example.com/.well-known/mta-sts.txt. Con nginx:

server {
    listen 443 ssl;
    server_name mta-sts.example.com;

    ssl_certificate     /etc/letsencrypt/live/mta-sts.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mta-sts.example.com/privkey.pem;

    location = /.well-known/mta-sts.txt {
        alias /var/www/mta-sts/mta-sts.txt;
        default_type text/plain;
    }

    location / {
        return 404;
    }
}

La respuesta tiene que ser un 200 directo, con Content-Type: text/plain. Los remitentes no siguen redirecciones al descargar la política.

4. Publica los registros TXT

Nombre Tipo Valor
_mta-sts.example.com TXT v=STSv1; id=20261115093000
_smtp._tls.example.com TXT v=TLSRPTv1; rua=mailto:<tu-dirección-de-informes>

El id es una cadena de 1 a 32 letras o números. Una fecha y hora como 20261115093000 es fácil de mantener.

El segundo registro es TLS-RPT. Copia tu dirección de informes de la pestaña Registros DNS del dominio en DMARC Examiner, en Registro TLS-RPT.

Cambiar la política

  1. Edita el fichero de política.
  2. Cambia el id del registro TXT _mta-sts.

Hazlo en este orden. Si cambias el id primero, un remitente puede descargar la política antigua con el id nuevo y guardarla durante max_age.

Si olvidas cambiar el id, los remitentes siguen con la copia de su caché hasta que caduca.

Pasar a enforce y retirar

Sigue los pasos de Qué es MTA-STS: empieza en testing, revisa los informes TLS, pasa a enforce y, para retirar, publica mode: none durante un max_age entero antes de borrar los registros.

Errores frecuentes

Síntoma en la tarjeta MTA-STS Causa habitual
No configurado Falta el registro TXT _mta-sts o no empieza por v=STSv1.
Política no accesible El certificado no cubre mta-sts.<dominio>, ha caducado, o la URL responde con una redirección o un error.
Política no válida Al fichero le falta version: STSv1 o mode.

Comprobar

dig +short TXT _mta-sts.example.com
curl -sv https://mta-sts.example.com/.well-known/mta-sts.txt

El verificador de cumplimiento de email comprueba el registro TXT, el fichero y su certificado de una vez.

Artículos relacionados