MTA-STS und TLS-RPT Check
MTA-STS-Record und HTTPS-Policy prüfen, MX-Abgleich, Zertifikat, TLS-RPT.
MTA-STS sorgt dafür, dass sendende Mailserver eine Domain nur über TLS mit gültigem Zertifikat erreichen und sich nicht per Man-in-the-Middle auf eine unverschlüsselte Verbindung herabstufen lassen. SMTP kennt Transportverschlüsselung nur als Option (STARTTLS); MTA-STS macht sie für eine Domain verbindlich und schließt die Downgrade-Lücke. TLS-RPT ist der dazugehörige Berichtskanal, über den sendende Server melden, wenn eine TLS-Zustellung fehlschlägt.
Was dieses Werkzeug prüft
MTA-STS besteht aus zwei Teilen. Dieses Werkzeug holt den TXT-Record unter _mta-sts.<domain> (Version und id) und die Policy-Datei unter https://mta-sts.<domain>/.well-known/mta-sts.txt. Es prüft die Syntax der Policy (version, mode, max_age, mx), gleicht jedes mx:-Muster gegen die tatsächlichen MX-Records der Domain ab und zeigt Aussteller und Restlaufzeit des Zertifikats der mta-sts-Subdomain. Der HTTPS-Abruf läuft über einen SSRF-Schutz, nur https, ohne Weiterleitungen. Zusätzlich wird der TLS-RPT-Record unter _smtp._tls.<domain> gelesen und die rua-Ziele geprüft.
Das Ergebnis lesen
Grün heißt: TXT-Record und Policy vorhanden und syntaktisch sauber, mode: enforce, ein vertrauenswürdiges Zertifikat und jeder MX von einem mx:-Muster gedeckt. mode: testing ist eine Warnung: sinnvoll für die Einführung, aber ohne Schutzwirkung. Ein Fehler steht für eine nicht erreichbare oder ungültige Policy bei vorhandenem TXT-Record, für ein abgelaufenes oder nicht vertrauenswürdiges Zertifikat der mta-sts-Subdomain oder für einen MX, den kein Muster deckt. Fehlt TLS-RPT, ist das nur ein Hinweis.
Grundlagen
MTA-STS ist in RFC 8461 definiert, TLS-RPT in RFC 8460. RFC 8461 verlangt für die Policy HTTPS mit einem gültigen, öffentlich vertrauenswürdigen Zertifikat für mta-sts.<domain> und verbietet das Folgen von HTTP-Weiterleitungen. Eine Policy-Änderung wird über einen neuen id-Wert im TXT-Record signalisiert, sonst nutzen Sender die gecachte Fassung bis max_age abläuft. MTA-STS und DANE (RFC 7672) verfolgen dasselbe Ziel über unterschiedliche Vertrauensanker (Web-PKI gegen DNSSEC) und schließen sich nicht aus.
Typische Fehlerbilder und wie man sie behebt
- TXT-Record da, Policy nicht erreichbar. Die
mta-sts-Subdomain braucht einen erreichbaren HTTPS-Endpunkt mit gültigem Zertifikat und der Datei unter dem exakten Pfad/.well-known/mta-sts.txt, ausgeliefert alstext/plain. Kein HTTP, keine Weiterleitung auf die Hauptdomain. - Dauerhaft
mode: testing. Testing meldet nur, erzwingt nichts. Sobald die TLS-RPT-Berichte keine Fehlversuche mehr zeigen, aufenforcestellen und dabei denid-Wert im TXT-Record ändern. - MX nicht von einem
mx:-Muster gedeckt. Beienforcelehnen konforme Sender die Zustellung an diesen Host ab. Die Policy so ergänzen, dass jeder aktuelle MX-Hostname passt, Wildcards wie*.example.netsind erlaubt. - Policy geändert, Sender nutzen die alte. Der
idim TXT-Record muss sich bei jeder Policy-Änderung ändern, sonst greift der Cache bismax_age(oft eine Woche oder mehr). - Zertifikat der
mta-sts-Subdomain abgelaufen. Damit wird die Policy für Sender ungültig und der Schutz fällt aus. Das Zertifikat in die automatische Erneuerung aufnehmen wie jedes andere.
Ausführlicher Hintergrund im Blogartikel MTA-STS (Strict Transport Security) auf frankysweb.de.
Häufige Fragen
- Was ist der Unterschied zwischen mode enforce, testing und none?
- enforce = Sender müssen TLS mit gültigem Zertifikat nutzen, sonst keine Zustellung. testing = Verstöße werden nur per TLS-RPT gemeldet, zugestellt wird trotzdem. none = Policy deaktiviert, Signal an Sender, sie zu vergessen.
- Wie richte ich MTA-STS ein?
- Die mta-sts-Subdomain mit gültigem HTTPS-Zertifikat aufsetzen und die Datei unter /.well-known/mta-sts.txt bereitstellen (version, mode, mx, max_age). Dann den TXT-Record _mta-sts mit v=STSv1 und einem id-Wert setzen. Mit mode: testing plus TLS-RPT beginnen, nach fehlerfreier Beobachtung auf enforce wechseln.
- Meine mta-sts.txt ist nicht erreichbar, woran liegt das?
- Häufig: die Subdomain hat kein eigenes Zertifikat, es wird auf HTTP oder auf die Hauptdomain weitergeleitet, der Pfad stimmt nicht exakt, oder der Content-Type ist nicht text/plain. RFC 8461 verlangt HTTPS ohne Redirects unter genau diesem Pfad.
- Wozu dient der mx-Abgleich?
- Jeder MX-Host der Domain muss zu mindestens einem mx:-Muster der Policy passen. Passt ein MX zu keinem Muster, schlägt bei enforce die Zustellung dorthin fehl.
- Brauche ich MTA-STS, wenn ich schon DANE habe?
- Nicht zwingend, beide erzwingen TLS. DANE setzt DNSSEC voraus, MTA-STS die Web-PKI. Wer beides veröffentlicht, erreicht sowohl Sender mit DNSSEC-Validierung als auch solche ohne. Ein Widerspruch entsteht dabei nicht.
- Was bringt der TLS-RPT-Record?
- Über _smtp._tls veröffentlicht die Domain eine rua-Adresse, an die sendende Server tägliche Berichte über erfolgreiche und fehlgeschlagene TLS-Zustellungen schicken. Ohne ihn merkt man MTA-STS- oder STARTTLS-Probleme erst, wenn Mail ausbleibt.