SMTP-TLS für Mailcow

Mailcow hat TLS 1.0/1.1 seit Februar 2020 in Dovecot und Postfix (SMTPS+SUBMISSION) deaktiviert. Cipher-Härtung erfolgt über data/conf/postfix/extra.cf mit tls_high_cipherlist (ECDHE-AEAD-Suites), smtpd_tls_ciphers=high und tls_preempt_cipherlist=yes — laut Hardening-Guide aus docs.mailcow.email.

Mailcow · SMTP-TLS-Hardening

SMTP-TLS bei Mailcow (Self-Hosted Docker)

Mailcow hat TLS 1.0 und TLS 1.1 seit Februar 2020 in Dovecot und Postfix (für SMTPS und SUBMISSION) deaktiviert — die Defaults erfüllen damit bereits BSI TR-02102-2 für Port 465/587. Für Port 25 (MX-zu-MX-Inbound) bleibt opportunistisches TLS mit Mailcow-Defaults aktiv. Die Cipher-Härtung erfolgt über die Datei data/conf/postfix/extra.cf mit den Direktiven tls_high_cipherlist (ECDHE-AEAD-Suites), smtpd_tls_ciphers=high und tls_preempt_cipherlist=yes — das offizielle Hardening-Guide unter docs.mailcow.email/manual-guides/Postfix/u_e-postfix-harden_ciphers/ ist die maßgebliche Referenz und entspricht den Internet.nl-Standards von Oktober 2024.

Anders als bei Managed-Providern haben Sie als Mailcow-Betreiber vollständige Kontrolle über TLS-Version, Cipher-Suiten und Zertifikats-Management. Mailcows ACME-Container stellt automatisch Let's-Encrypt-Zertifikate für den Mailcow-FQDN aus, die Postfix für Port 25/587 und Dovecot für IMAP/POP3 wiederverwendet. Bei Cluster-Setups oder Hochsicherheits-Umgebungen können Sie eigene Zertifikate (z.B. von einem internen CA-Server) per Override in data/assets/ssl/ einspielen. Der Wolf-Agents Email Security Scanner prüft pro MX-Host die TLS-Version, die Cipher-Stärke nach BSI TR-02102-2, das Zertifikats-Hostname-Match (CN/SAN muss mail.ihre-domain.de enthalten), die Chain-Vollständigkeit und das Ablaufdatum zeichengenau — gemeinsam mit MTA-STS-Status für die durchgesetzte TLS-Erzwingung.

Hardening-Pfad: SMTP-TLS-Härtung bildet den Abschluss der Mailcow-Hardening-Reihe — die SPF/DKIM/DMARC-Stack-Authentifizierung kombiniert mit Cipher-gehärtetem TLS und durchgesetztem MTA-STS ist nach BSI TR-03108 und NIS2-Stand-der-Technik vollständig. Falls MTA-STS noch nicht aktiviert ist, starten Sie mit MTA-STS für Mailcow (Built-in seit 2025-09). Bedrohungs-Cluster: Cipher-Härtung mit ausschließlich ECDHE-AEAD-Suites verhindert ein Downgrade auf schwache CBC-Cipher und schützt damit vor STARTTLS-Stripping als Spoofing-Vorbereitungsvektor — bei deaktiviertem TLS oder schwachem Cipher könnte ein Angreifer im Netzwerk-Pfad Mail-Verkehr im Klartext mitlesen und Reply-To-Manipulationen für gezielten Business Email Compromise vorbereiten (FBI IC3 2024: 2,77 Mrd. USD Schaden).

1 Schritt 1 von 4

Default-TLS-Konfiguration prüfen

Vor der Härtung den Ist-Zustand prüfen — Mailcow-Defaults sind für die meisten Setups bereits BSI-TR-02102-2-konform. Bei älteren Installationen (vor 2020) kann TLS 1.0/1.1 noch aktiv sein.

Terminal — Default-Status openssl s_client
# STARTTLS auf Port 25 prüfen
echo | openssl s_client \
  -connect mail.ihre-domain.de:25 \
  -starttls smtp \
  -servername mail.ihre-domain.de \
  2>/dev/null | grep -E "Protocol|Cipher|subject|issuer"

# Erwartet (mit Mailcow-Default):
# Protocol  : TLSv1.3   (oder TLSv1.2)
# Cipher    : TLS_AES_256_GCM_SHA384  (TLS 1.3) oder
#             ECDHE-ECDSA-AES256-GCM-SHA384  (TLS 1.2)
# subject=CN = mail.ihre-domain.de
# issuer=CN = R11  (Let's Encrypt)

# Submission-Port 587 (STARTTLS)
openssl s_client -connect mail.ihre-domain.de:587 -starttls smtp -servername mail.ihre-domain.de

# Implicit-TLS Port 465 (SMTPS)
openssl s_client -connect mail.ihre-domain.de:465 -servername mail.ihre-domain.de

# Vollständiger Cipher-Audit
./testssl.sh --starttls smtp mail.ihre-domain.de:25
2 Schritt 2 von 4

Cipher-Härtung in data/conf/postfix/extra.cf

Mailcow nutzt eine Override-Datei data/conf/postfix/extra.cf, die NACH der Default-main.cf geladen wird — Änderungen darin sind update-sicher. Die folgende Konfiguration entspricht exakt der Empfehlung aus docs.mailcow.email/manual-guides/Postfix/u_e-postfix-harden_ciphers/.

data/conf/postfix/extra.cf Cipher-Hardening
# /opt/mailcow-dockerized/data/conf/postfix/extra.cf
# Cipher-Härtung laut docs.mailcow.email/manual-guides/Postfix/u_e-postfix-harden_ciphers/

# Cipher-Suiten (TLS 1.2 — TLS 1.3 hat eigene Default-Suiten)
tls_high_cipherlist = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256

# Server bevorzugt Cipher-Reihenfolge
tls_preempt_cipherlist = yes

# Alte Protokolle vollständig deaktivieren
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols  = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

# Cipher-Stärke "high" — entspricht ECDHE-AEAD-Suites
smtp_tls_ciphers           = high
smtp_tls_mandatory_ciphers = high
smtpd_tls_ciphers          = high
smtpd_tls_mandatory_ciphers = high

# TLS-Logging für DSGVO-TOM-Nachweis
smtpd_tls_loglevel = 1
smtp_tls_loglevel  = 1
3 Schritt 3 von 4

Postfix neu laden

Nach dem Speichern der extra.cf reicht ein Postfix-Reload — kein Container-Restart, kein Mailcow-Downtime. Vorher mit postfix check die Syntax validieren, damit ein Tippfehler nicht den Mail-Service stoppt.

Terminal — Postfix-Reload Reload
# Syntax prüfen
docker compose exec postfix-mailcow postfix check

# Konfiguration neu laden (keine Verbindungs-Unterbrechung)
docker compose exec postfix-mailcow postfix reload

# Effektive Konfiguration anzeigen
docker compose exec postfix-mailcow postconf | grep -E "tls_high_cipherlist|smtpd_tls_ciphers|smtp_tls_ciphers|tls_preempt_cipherlist"

# Logs prüfen
docker compose logs --tail=50 postfix-mailcow | grep -i "tls\|cipher"
4 Schritt 4 von 4

Verifikation nach Härtung

Nach dem Postfix-Reload denselben STARTTLS-Test aus Schritt 1 wiederholen und prüfen, dass nur noch ECDHE-AEAD-Cipher angeboten werden. testssl.sh oder nmap geben einen vollständigen Cipher-Audit.

Wolf-Agents Scanner prüft pro MX-Host

  1. TLS-Version: Mindestens TLSv1.2 (BSI TR-02102-2 Pflicht), TLSv1.3 bevorzugt
  2. Cipher-Stärke: Forward-Secrecy-Cipher (ECDHE-AEAD) ausschließlich — keine alten CBC/RSA-Cipher
  3. Zertifikat-Hostname-Match: CN/SAN müssen mail.ihre-domain.de exakt enthalten — sonst MTA-STS-Hard-Fail
  4. Chain-Vollständigkeit: Intermediate-Zertifikate korrekt mitgeliefert (Mailcows ACME stellt das automatisch sicher)
  5. Ablaufdatum: Warnung 14 Tage vor Ablauf — Mailcow-ACME erneuert automatisch 30 Tage vor Ende
  6. tls_preempt_cipherlist: Server-Side-Cipher-Reihenfolge aktiv (Internet.nl-Standard)

Der Scanner bewertet SMTP-TLS mit bis zu 5 Punkten der 165-Punkte-Email-Security-Analyse — gemeinsam mit MTA-STS (10 Punkte) und TLS-RPT (5 Punkte) ergeben sich bis zu 20 Transport-Verschlüsselungs-Punkte.

Postfix-3.10-Features in modernen Mailcow-Releases (Information-Gain)

  1. Native TLSRPT-Unterstützung (RFC 8460): Postfix 3.10 (Februar 2025) hat erstmals nativen TLSRPT-Support — Sie können eine DNS-Policy unter _smtp._tls veröffentlichen, um tägliche Aggregate-Reports von sendenden Servern zu erhalten. Quelle: postfix.org/announcements/postfix-3.10.0.html
  2. RFC 8689 „TLS-Required: no“ Header: Postfix 3.10 unterstützt den Header zur expliziten Deaktivierung der TLS-Erzwingung für einzelne Nachrichten — relevant für TLSRPT-Zusammenfassungen selbst (die müssen auch dann zustellbar bleiben, wenn die TLS-Policy fehlschlägt). Mailcow nutzt diese Funktionalität automatisch für Aggregate-Report-Versand.
  3. Forward-Compat zu OpenSSL 3.5 PQC: Postfix 3.10 erlaubt leere tls_eecdh_auto_curves und tls_ffdhe_auto_groups, wodurch die Algorithmen-Auswahl von OpenSSL-Konfiguration übernommen wird — Voraussetzung für hybride Post-Quantum-Cipher-Suites wie X25519MLKEM768 ab OpenSSL 3.5. Vorbereitung für die NIST-PQC-Standardisierung 2024/2025.
PQC-Roadmap für Mailserver (BSI TR-02102 V2026-01, Information-Gain Welle 2)

Die BSI TR-02102-1 in Version 2026-01 (publiziert 23. Januar 2026) empfiehlt für langfristig schützenswerte Kommunikation Post-Quantum-Verfahren im hybriden Modus mit klassischen Mechanismen — die Empfehlung umfasst FrodoKEM-976/1344, Classic McEliece (mceliece460896/6688128/8192128), und ab NIST-Standardisierung ML-KEM-768/1024. OpenSSL 3.5 implementiert die hybride X25519MLKEM768-Cipher-Suite, die mit Postfix 3.10 nutzbar wird (siehe oben). Mailcow-Roadmap 2026: Releases 2026-01 bis 2026-05 brachten Security-Updates (HTML-Escaping, Forced-2FA, ACME-DNS-01), aber keine direkte PQC-Cipher-Integration im Admin-UI — die PQC-Aktivierung erfolgt weiterhin manuell via data/conf/postfix/extra.cf-Override sobald OpenSSL 3.5 als Default-Library in Postfix-Distributionen ausgerollt ist. Quelle: BSI TR-02102-1 V2026-01 + github.com/mailcow Releases (abgerufen 2026-05-13).

Häufige Fehler bei Mailcow-SMTP-TLS-Hardening

Diese drei Fehler treten bei der TLS-Härtung mit Mailcow besonders häufig auf — alle drei können dazu führen, dass die Konfiguration nicht greift oder Postfix den Service nicht startet.

main.cf statt extra.cf bearbeitet

Problem: Die Cipher-Direktiven werden direkt in data/conf/postfix/main.cf eingetragen statt in extra.cf. Bei einem Mailcow-Update wird die main.cf überschrieben — die Härtung ist wieder weg, ohne Warnung. extra.cf ist als Override-Datei vorgesehen und update-sicher.

Lösung: Alle Custom-Direktiven ausschließlich in data/conf/postfix/extra.cf eintragen — Mailcow lädt diese Datei automatisch NACH der main.cf und überschreibt damit die Defaults. Nach jedem Mailcow-Update mit docker compose exec postfix-mailcow postconf | grep tls prüfen, ob die Werte aus extra.cf noch aktiv sind.

smtp_tls_protocols ohne smtpd-Pendant

Problem: Nur die Outbound-Direktive smtp_tls_protocols wird gesetzt, nicht aber die Inbound-Direktive smtpd_tls_protocols. Postfix nutzt für Empfangsverbindungen smtpd_*-Direktiven, für Sendeverbindungen smtp_*-Direktiven — beide sind separat zu konfigurieren. Eine einseitige Härtung lässt eingehende Verbindungen weiterhin mit veralteten TLS-Versionen zu.

Lösung: Immer beide Direktiven setzen: smtpd_tls_protocols (eingehend, Port 25) und smtp_tls_protocols (ausgehend) — analog für smtpd_tls_ciphers und smtp_tls_ciphers. Mit postconf | grep tls_protocols beide Werte verifizieren.

Empfänger-Server nutzen noch TLS 1.0 — Mails bouncen

Problem: Nach Aktivierung von smtp_tls_protocols = !TLSv1, !TLSv1.1 bouncen ausgehende Mails an Empfänger-Server, die nur TLS 1.0 unterstützen (selten, aber bei einigen Legacy-Postfix-Setups oder älteren Embedded-Systemen anzutreffen). Postfix downgraded dann opportunistisch auf Klartext — was bei MTA-STS-Enforce zu komplettem Verbindungsabbruch führt.

Lösung: smtp_tls_protocols nur für die Mandatory-Variante härten (also smtp_tls_mandatory_protocols = !TLSv1, !TLSv1.1), während smtp_tls_protocols opportunistisch alle TLS-Versionen erlaubt — Postfix wählt dann die höchste Version, die der Empfänger anbietet, und fällt auf Klartext nur zurück, wenn keine TLS-Version übereinstimmt. Für Inbound (smtpd) kann strikter gehärtet werden, weil Sie hier den Server kontrollieren.

NIS2, BSI TR-02102-2 / TR-03108 und DSGVO Art. 32: SMTP-TLS bei Mailcow

NIS2 Art. 21 Abs. 2 lit. h fordert Konzepte und Verfahren für den Einsatz von Kryptografie und Verschlüsselung — Mailcow mit gehärtetem Cipher-Set (ECDHE-AEAD ausschließlich) und TLS 1.2/1.3 erfüllt BSI TR-02102-2 (Stand 2026-01) vollständig. BSI TR-03108 Abschnitt 4.3 verlangt TLS-Erzwingung; in Kombination mit MTA-STS-Enforce (siehe MTA-STS-Anleitung) ist die Erzwingung technisch durchsetzbar. DSGVO Art. 32 Abs. 1 lit. a benennt Verschlüsselung als technische Schutzmaßnahme — Mailcow-Logs mit smtpd_tls_loglevel=1 dokumentieren TLS-Version und Cipher pro Verbindung in den Postfix-Container-Logs, was als DSGVO-TOM-Nachweis dient. NIS2 Art. 23 (24h-Frühwarnung bei STARTTLS-Stripping-Vorfall mit Klartext-Mitlesen personenbezogener Daten) wird durch Postfix-TLS-Logs und TLS-RPT-Reports forensisch belegbar; bei Daten-Leak greift parallel DSGVO Art. 33. Bei Self-Hosting liegt die Verantwortung vollständig bei Ihnen — keine AVV-Delegation möglich. Wolf-Agents empfiehlt für Mailcow die Kombination aus extra.cf-Cipher-Härtung, MTA-STS-Enforce (Built-in seit 2025-09) und postfix-tlspol-mailcow für Outbound; CT-Log-Monitoring via Certstream-Integration alarmiert bei unautorisierten Zertifikats-Ausstellungen für Ihren Mailcow-FQDN. Der Wolf-Agents Email Security Scanner bewertet SMTP-TLS mit bis zu 5 Punkten der 165-Punkte-Analyse, gemeinsam mit MTA-STS (10 Punkte) und TLS-RPT (5 Punkte) ergibt das den vollständigen 20-Punkte-Transport-Verschlüsselungs-Score.

Wie steht Ihre Domain bei SMTP-TLS?

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