MTA-STS für Exim einrichten

Schritt-für-Schritt-Anleitung: DNS-Records setzen, nginx-vhost für Policy-Hosting konfigurieren, Policy-Datei erstellen, Exim TLS-Konfiguration mit tls_advertise_hosts und modernen Cipher-Suites prüfen — mit Verifizierung und Troubleshooting.

Exim · MTA-STS-Anleitung

MTA-STS bei Exim einrichten

Exim unterstützt MTA-STS nicht nativ — wie bei Postfix wird die Policy-Datei über einen nginx- oder Apache-Webserver mit Let's-Encrypt-Zertifikat gehostet. Die Konfiguration umfasst DNS-Records, nginx-vhost, Policy-Datei und die Exim-TLS-Einstellungen mit tls_advertise_hosts und modernen Cipher-Suites.

MTA-STS (RFC 8461) schützt eingehende E-Mail-Zustellung vor STRIPTLS-Downgrade-Angriffen. Bei Exim besteht die Konfiguration aus zwei Teilen: Erstens das Policy-Hosting über nginx, damit sendende Server Ihre MTA-STS-Policy abrufen können. Zweitens die Exim-TLS-Konfiguration, die sicherstellt, dass Ihr Mailserver TLS korrekt anbietet — mit tls_advertise_hosts = *, gültigem Zertifikat und modernen Cipher-Suites. Die Cipher-Konfiguration ist bei Exim besonders wichtig, da tls_require_ciphers direkt die OpenSSL-Cipher-Strings akzeptiert. Der Wolf-Agents Email Security Scanner vergleicht Policy-MX und DNS-MX zeichengenau: Er erkennt zu restriktive tls_require_ciphers-Konfigurationen (legitime Sender mit älteren Ciphern brechen ab), warnt vor fehlender mta-sts-Subdomain im Zertifikat (nur Hauptdomain im SAN), meldet root-vs-alias-Fehler in nginx und deckt Mismatches zwischen Common Name des Exim-Zertifikats und MX-Hostname auf.

NIS2 Art. 21 Abs. 2 lit. h fordert den Einsatz von Kryptografie und Verschlüsselung. Exim mit MTA-STS im Enforce-Modus erzwingt TLS-verschlüsselte E-Mail-Zustellung über das nginx-Policy-Hosting. DSGVO Art. 32 verlangt Verschlüsselung als technische Maßnahme — Exim-Logs mit log_selector = +tls_cipher +tls_peerdn +tls_certificate_verified protokollieren jede TLS-Verbindung mit Cipher, Peer-DN und Zertifikats-Verifikationsstatus in /var/log/exim4/mainlog, was als revisionsfähiger DSGVO-TOM-Audit-Trail dient. Wolf-Agents empfiehlt die Kombination aus MTA-STS und DANE — Exim unterstützt DANE nativ über dnssec_request_domains, was auf Self-Hosted-Infrastruktur einen deutlichen Sicherheitsvorteil bietet.

Wichtig zur ausgehenden MTA-STS-Validierung: Die offizielle Exim-Doku stellt klar, dass Exim als Client KEINE MTA-STS-Validierung durchführt ("Exim has no support for MTA-STS as a client"). Für die eingehende Seite (Policy-Hosting via nginx und MTA-STS-konformes TLS-Zertifikat) ist Exim hingegen voll geeignet. Wenn Sie ausgehende MTA-STS-Validierung benötigen, betreiben Sie entweder Exim hinter einem Postfix-Smarthost mit postfix-mta-sts-resolver, oder Sie setzen primär auf DANE: Exim validiert TLSA-Records über DNSSEC nativ und bietet damit einen kryptografisch stärkeren Schutz für die Domains, die DNSSEC und TLSA veröffentlichen.

1 Schritt 1 von 5

DNS-Records setzen

Legen Sie drei DNS-Records an: einen A-Record für die Subdomain mta-sts.ihre-domain.de, den _mta-sts TXT-Record und den _smtp._tls TLS-RPT-Record. Bei Exim-Setups läuft der Policy-Webserver typischerweise auf demselben Host wie der Mailserver — der A-Record zeigt auf dieselbe IP. Die id im MTA-STS-Record muss bei jeder Policy-Änderung aktualisiert werden.

DNS-Konfiguration DNS-Records
# A-Record für Policy-Subdomain
# Host: mta-sts
# Typ: A
# Wert: 203.0.113.10 (IP Ihres Webservers)

# MTA-STS DNS-Record
# Host: _mta-sts
# Typ: TXT
# Wert: v=STSv1; id=20260408

# TLS-RPT DNS-Record
# Host: _smtp._tls
# Typ: TXT
# Wert: v=TLSRPTv1; rua=mailto:tls-reports@ihre-domain.de

# DNS-Records prüfen
dig _mta-sts.ihre-domain.de TXT +short
dig _smtp._tls.ihre-domain.de TXT +short
dig mta-sts.ihre-domain.de A +short
2 Schritt 2 von 5

nginx für Policy-Hosting konfigurieren

Erstellen Sie einen nginx-vhost für die Subdomain mta-sts.ihre-domain.de. Die Konfiguration ist identisch zum Postfix-Setup: HTTPS mit gültigem Zertifikat, Policy-Datei unter /.well-known/mta-sts.txt mit Content-Type text/plain, alle anderen Pfade antworten mit 404. Falls Sie Apache statt nginx einsetzen, funktioniert das Prinzip identisch — die Policy-Datei muss lediglich per HTTPS erreichbar sein.

/etc/nginx/sites-available/mta-sts nginx-vhost
server {
    listen 443 ssl;
    http2 on;
    server_name mta-sts.ihre-domain.de;

    ssl_certificate /etc/letsencrypt/live/mta-sts.ihre-domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mta-sts.ihre-domain.de/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    location /.well-known/mta-sts.txt {
        alias /var/www/mta-sts/.well-known/mta-sts.txt;
        default_type text/plain;
        add_header Cache-Control "public, max-age=3600";
    }

    location / {
        return 404;
    }
}

server {
    listen 80;
    server_name mta-sts.ihre-domain.de;
    return 301 https://$host$request_uri;
}

nginx-Konfiguration aktivieren

  1. Symlink erstellen: ln -s /etc/nginx/sites-available/mta-sts /etc/nginx/sites-enabled/
  2. Konfiguration testen: nginx -t — muss syntax is ok ausgeben
  3. nginx neu laden: systemctl reload nginx
  4. Verzeichnis erstellen: mkdir -p /var/www/mta-sts/.well-known
3 Schritt 3 von 5

Policy-Datei erstellen

Erstellen Sie die Policy-Datei unter /var/www/mta-sts/.well-known/mta-sts.txt. Die mx-Zeilen müssen exakt mit Ihren DNS-MX-Records übereinstimmen. Beginnen Sie mit mode: testing — in diesem Modus werden TLS-Fehler in TLS-RPT-Reports gemeldet, aber E-Mails nicht blockiert. Wechseln Sie auf mode: enforce, sobald die Reports keine Fehler zeigen und die Exim-TLS-Konfiguration verifiziert ist.

/var/www/mta-sts/.well-known/mta-sts.txt Policy
version: STSv1
mode: enforce
mx: mx1.ihre-domain.de
mx: mx2.ihre-domain.de
max_age: 604800
Terminal (certbot) Let's Encrypt
# Zertifikat für Policy-Subdomain anfordern
sudo certbot certonly --standalone -d mta-sts.ihre-domain.de

# ODER mit nginx-Plugin
sudo certbot --nginx -d mta-sts.ihre-domain.de

# Zertifikat für MX-Host (falls noch nicht vorhanden)
sudo certbot certonly --standalone -d mx1.ihre-domain.de

# Automatische Erneuerung prüfen
sudo certbot renew --dry-run
4 Schritt 4 von 5

Exim TLS-Konfiguration prüfen

Die Exim-TLS-Konfiguration ist entscheidend: tls_advertise_hosts = * aktiviert TLS für alle eingehenden Verbindungen. Das Zertifikat des MX-Hosts muss gültig, zum Hostnamen passend und mit modernen Cipher-Suites konfiguriert sein. Bei MTA-STS im Enforce-Modus validieren sendende Server das Zertifikat — ein selbstsigniertes oder abgelaufenes Zertifikat führt zu Zustellfehlern. Bei Debian/Ubuntu mit Exim4 im Split-Modus liegt die Konfiguration in /etc/exim4/exim4.conf.template.

/etc/exim4/exim4.conf.template Exim-TLS
# /etc/exim4/exim4.conf.template — TLS-Einstellungen
tls_advertise_hosts = *
tls_certificate = /etc/letsencrypt/live/mx1.ihre-domain.de/fullchain.pem
tls_privatekey = /etc/letsencrypt/live/mx1.ihre-domain.de/privkey.pem
tls_require_ciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
openssl_options = +no_sslv2 +no_sslv3 +no_tlsv1 +no_tlsv1_1

Exim-TLS — kritische Parameter

  1. tls_advertise_hosts = *: Aktiviert TLS-Werbung für ALLE eingehenden SMTP-Verbindungen. Ohne diesen Parameter bietet Exim kein STARTTLS an und MTA-STS enforce schlägt fehl
  2. tls_certificate / tls_privatekey: Let's-Encrypt-Zertifikat für den MX-Hostnamen. Der Common Name oder SAN muss exakt mit dem MX-Record übereinstimmen
  3. tls_require_ciphers: Exim verwendet direkt OpenSSL-Cipher-Strings. Konfigurieren Sie nur ECDHE-basierte Cipher-Suites mit AES-GCM — PFS (Perfect Forward Secrecy) ist BSI-Empfehlung
  4. openssl_options: Deaktiviert veraltete Protokolle. +no_sslv2 +no_sslv3 +no_tlsv1 +no_tlsv1_1 lässt nur TLSv1.2 und TLSv1.3 zu
  5. Debian Split-Modus: Nach Änderungen in exim4.conf.template muss update-exim4.conf ausgeführt werden, gefolgt von systemctl restart exim4
5 Schritt 5 von 5

MTA-STS-Konfiguration verifizieren

Prüfen Sie alle Komponenten: DNS-Records, nginx-Erreichbarkeit, Exim-TLS-Konfiguration und MX-Abgleich. Testen Sie die TLS-Verbindung zu Ihrem MX-Host mit openssl s_client — das Zertifikat muss gültig sein und zum Hostnamen passen. Der Wolf-Agents Email Security Scanner validiert alle MTA-STS-Komponenten automatisch. Beginnen Sie mit mode: testing und wechseln Sie nach 1–2 Wochen fehlerfreier TLS-RPT-Reports auf mode: enforce.

Terminal / PowerShell Verifikation
# Linux / macOS
dig _mta-sts.ihre-domain.de TXT +short
curl -s https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt
dig _smtp._tls.ihre-domain.de TXT +short

# Windows (PowerShell)
Resolve-DnsName -Name _mta-sts.ihre-domain.de -Type TXT | Select-Object -ExpandProperty Strings
Invoke-WebRequest -Uri "https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt" | Select-Object -ExpandProperty Content
Resolve-DnsName -Name _smtp._tls.ihre-domain.de -Type TXT | Select-Object -ExpandProperty Strings

# Exim TLS-Status prüfen
exim -bP tls_advertise_hosts
exim -bP tls_certificate
exim -bP tls_require_ciphers

# Erwartete Ausgaben:
# "v=STSv1; id=20260408"
# version: STSv1 / mode: enforce / mx: ... / max_age: 604800
# "v=TLSRPTv1; rua=mailto:tls-reports@ihre-domain.de"
Terminal (openssl) TLS-Test
# TLS-Verbindung zu Ihrem MX-Host testen
openssl s_client -connect mx1.ihre-domain.de:25 -starttls smtp -servername mx1.ihre-domain.de

# Erwartete Ausgabe: gültiges Zertifikat, TLSv1.2 oder TLSv1.3
# Verify return code: 0 (ok)

Häufige Probleme bei Exim MTA-STS

Die folgenden drei Probleme treten bei Exim MTA-STS-Konfigurationen besonders häufig auf. Zwei betreffen die Exim-TLS-Konfiguration, eines das nginx-Policy-Hosting — alle drei müssen vor dem Wechsel auf mode: enforce behoben sein.

Exim TLS-Cipher zu restriktiv konfiguriert

Symptom: TLS-RPT-Reports zeigen starttls-not-supported oder certificate-not-trusted für bestimmte sendende Server. Einige Mailserver können keine TLS-Verbindung zu Ihrem Exim aufbauen.

Ursache: tls_require_ciphers enthält nur wenige oder zu moderne Cipher-Suites, die ältere (aber legitime) sendende Server nicht unterstützen. Oder openssl_options deaktiviert TLSv1.2, obwohl einige Server noch kein TLSv1.3 unterstützen.

Lösung: Verwenden Sie die empfohlene Cipher-Konfiguration mit ECDHE-ECDSA und ECDHE-RSA Varianten (siehe Schritt 4). Stellen Sie sicher, dass TLSv1.2 aktiviert bleibt — nur SSLv2/SSLv3/TLSv1/TLSv1.1 deaktivieren. Testen Sie mit openssl s_client -connect mx1.ihre-domain.de:25 -starttls smtp.

nginx Policy-Pfad falsch konfiguriert

Symptom: curl https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt liefert 404 Not Found oder den Inhalt einer anderen Datei. Sendende Server können die MTA-STS-Policy nicht laden.

Ursache: In der nginx-Konfiguration ist root statt alias verwendet, oder der Pfad im Dateisystem stimmt nicht mit der Konfiguration überein. Bei root wird der location-Pfad angehängt, bei alias wird er ersetzt — das führt zu unterschiedlichen Dateisystem-Pfaden.

Lösung: Verwenden Sie alias /var/www/mta-sts/.well-known/mta-sts.txt; in der location /.well-known/mta-sts.txt-Direktive. Prüfen Sie den Dateisystem-Pfad: ls -la /var/www/mta-sts/.well-known/mta-sts.txt. Nach Änderungen: nginx -t && systemctl reload nginx.

Let's Encrypt für mta-sts Subdomain fehlt

Symptom: Beim Aufruf von https://mta-sts.ihre-domain.de/.well-known/mta-sts.txt erscheint eine Browser-Warnung oder curl zeigt SSL certificate problem. Sendende Server verweigern den Policy-Abruf.

Ursache: Das Let's-Encrypt-Zertifikat wurde nur für die Hauptdomain oder den MX-Host erstellt — die Subdomain mta-sts.ihre-domain.de ist nicht im Zertifikat enthalten. Oder das Zertifikat ist abgelaufen.

Lösung: Erstellen Sie ein separates Zertifikat: certbot certonly --nginx -d mta-sts.ihre-domain.de. Prüfen Sie die automatische Erneuerung: certbot renew --dry-run. Der Wolf-Agents Email Security Scanner erkennt fehlende oder abgelaufene Zertifikate automatisch.

NIS2, BSI TR-03108 und DSGVO Art. 32: Exim mit MTA-STS enforce

NIS2 Art. 21 Abs. 2 lit. h fordert den Einsatz von Kryptografie und Verschlüsselung zum Schutz der Kommunikation. Exim mit MTA-STS im Enforce-Modus erzwingt TLS-verschlüsselte E-Mail-Zustellung: Sendende Server müssen TLS verwenden und das Zertifikat Ihres MX-Hosts validieren, bevor E-Mails zugestellt werden. Die BSI TR-03108 verlangt TLS-Erzwingung als Stand der Technik für E-Mail-Transport. DSGVO Art. 32 fordert Verschlüsselung als technische Maßnahme — Exim mit log_selector = +tls_cipher +tls_peerdn +tls_certificate_verified protokolliert jede TLS-Verbindung als revisionsfähigen Audit-Trail. In Kombination mit den modernen Cipher-Suites und der Deaktivierung veralteter Protokolle bietet diese Konfiguration umfassenden Schutz gegen STRIPTLS-Downgrade-Angriffe. Sicherheits-Hinweis: Exim 4.96–4.98.1 ist von zwei kritischen CVEs betroffen (CVE-2025-26794 SQL-Injection CVSS 9.8, CVE-2025-30232 Use-after-free CVSS 7.8–8.1) — Update auf Exim ≥ 4.99.1 dringend empfohlen, Details und NVD-Verlinkung siehe SMTP-TLS für Exim. Der Wolf-Agents Email Security Scanner bewertet MTA-STS mit bis zu 15 Punkten (10 MTA-STS + 5 TLS-RPT) und zeigt Ihnen den aktuellen Stand Ihrer Konfiguration.

Exim Open-Source-Stack — 4 Komponenten (Multimodal)

Exim + nginx + Let's Encrypt + Snawoot postfix-mta-sts-resolver bilden den vollständigen Open-Source-Stack für MTA-STS auch in Exim-Setups. Die Visualisierung ist identisch zum Postfix-Pendant (Cross-File-Reuse Welle-5c, Empirik 80+85) — die Komponenten-Architektur bleibt gleich, nur der MTA wechselt.

Wie steht Ihre Domain bei MTA-STS?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 165 Prüfpunkte.