Werkzeug

MTA-STS-Check

Prüft Ihren _mta-sts-DNS-Record UND das Policy-File unter mta-sts.<domain> in einem Durchgang.

Permalink: ?domain=… funktioniert auch.

Was ist MTA-STS?

MTA-STS (SMTP Mail Transfer Agent Strict Transport Security) erzwingt verschlüsselte SMTP-Verbindungen zwischen Mailservern. Ohne MTA-STS handelt SMTP zwar oft schon TLS aus (Opportunistic TLS), kann aber durch einen Man-in-the-Middle-Angriff problemlos auf Klartext heruntergedowngradet werden — Empfänger ziehen sich dann achselzuckend ohne TLS zurück. MTA-STS schließt genau diese Lücke.

Das Setup besteht aus zwei Teilen. Erstens ein TXT-Record unter _mta-sts.<domain> mit der ID der aktuellen Policy. Zweitens das Policy-File auf https://mta-sts.<domain>/.well-known/mta-sts.txt mit drei Pflicht-Feldern: version, mode (none, testing, enforce), mx-Liste und max_age.

Sendende Server cachen das Policy-File entsprechend max_age und erzwingen TLS dann strikt. Im testing-Modus werden Verstöße nur via TLS-RPT gemeldet; im enforce-Modus wird die Mail nicht zugestellt, wenn TLS nicht möglich ist. Genau dieser Schritt von testing auf enforce ist die wichtige Entscheidung.

Tiefer eintauchen → MTA-STS einrichten

Typische Fehler bei MTA-STS

  1. DNS-Record vorhanden, aber Policy-File 404

    TXT-Record verspricht eine Policy, die unter der erwarteten URL nicht existiert. Sendende Server interpretieren das als Konfigurationsfehler und ziehen sich auf Opportunistic-TLS zurück.

  2. Modus auf testing seit Monaten — nie auf enforce

    Testing meldet nur via TLS-RPT, schaltet aber nichts hart durch. Wer die Policy nie auf enforce umstellt, hat Aufwand ohne Wirkung.

  3. Policy-File nicht via HTTPS erreichbar

    Spec verlangt https://mta-sts.…, valides Zertifikat, kein Selbstsigniert. Bei HTTP-Only oder Cert-Fehler ignorieren Empfänger die Policy.

  4. mx-Liste in Policy stimmt nicht mit DNS überein

    Die im Policy-File aufgelisteten MX-Hosts müssen mit den tatsächlichen MX-Records übereinstimmen. Abweichung → sendende Server lehnen ab, Mails bleiben hängen.

  5. max_age zu niedrig (< 86400)

    RFC 8461 empfiehlt mindestens 86400 (1 Tag), eher 604800 (1 Woche). Niedrige Werte zwingen Empfänger zu ständigem Re-Fetch, Sicherheitsgewinn ist gering.

  6. id-Wert in DNS nicht aktualisiert

    Nach Policy-Änderung muss die id im TXT-Record neu gesetzt werden, sonst nutzen Empfänger ihre gecachte Version weiter — die Korrektur greift nicht.

Probleme beheben — in 4 Schritten

Policy-File hosten

Auf https://mta-sts.<domain>/.well-known/mta-sts.txt ein Plain-Text-File ablegen. Mindest-Inhalt: version, mode, mx-Liste, max_age.

version: STSv1 mode: testing mx: mx1.example.com mx: mx2.example.com max_age: 604800

DNS-TXT mit aktueller id setzen

Unter _mta-sts.<domain> einen TXT-Record mit der id der Policy. Format: yyyymmdd + Suffix. Bei jeder Policy-Änderung muss die id neu gesetzt werden.

_mta-sts IN TXT "v=STSv1; id=20240601000000Z"

Modus testing → mit TLS-RPT überwachen

Parallel TLS-RPT einrichten (_smtp._tls.<domain>). Nach 2–4 Wochen ohne Failure-Reports kann der Modus auf enforce wechseln.

Wenn keine Failures: enforce

Policy-File auf mode: enforce setzen, id aktualisieren. Ab jetzt blockieren sendende Server bei TLS-Fehlern — Mails kommen nur über verschlüsselte Verbindungen durch.

Wollen Sie alle 8 Standards prüfen?

Der vollständige SelfCheck testet zusätzlich SPF/DKIM/DMARC, BIMI, MTA-STS, TLS-RPT, DNSSEC und MX in einem Durchgang.

Vollständigen SelfCheck starten →

Häufige Fragen zu MTA-STS

Was ist der Unterschied zwischen testing und enforce?
Testing lässt Mails durch, auch wenn TLS scheitert, und meldet das via TLS-RPT. Enforce blockiert nicht-TLS-Verbindungen hart — Mails kommen dann nicht zu, wenn das Policy-File nicht passt.
Was passiert, wenn das Policy-File offline geht?
Empfänger benutzen die zuletzt gecachte Policy bis max_age abläuft. Erst danach wird wieder unverschlüsselt zugestellt. Trotzdem ist ein Ausfall ein Risiko — das Policy-File hochverfügbar hosten.
Brauche ich MTA-STS und DANE?
MTA-STS ist HTTPS-basiert und einfacher; DANE benötigt DNSSEC. Im DACH-Raum reicht MTA-STS als Einstieg, beide parallel ist Best-Practice für maximale Abdeckung.
Wie hoste ich das Policy-File?
Auf einem Webserver unter https://mta-sts.<domain>/.well-known/mta-sts.txt erreichbar machen. Plain Text, gleiche TLS-Anforderungen wie jede HTTPS-Seite.