DMARC Enforcement für Exim
Schritt-für-Schritt-Roadmap: Native DKIM-Signierung direkt im Exim-Transport konfigurieren, System-E-Mails (Cron, Logwatch, Monitoring) nicht vergessen, dkim_domain für alle sendenden Domains hinterlegen und Policy von p=none über p=quarantine zu p=reject verschärfen.
DMARC Enforcement bei Exim
Exim ist der Standard-MTA unter Debian und läuft auf tausenden Servern — oft ohne explizite DKIM-Konfiguration. Der entscheidende Vorteil: Exim bietet native DKIM-Signierung direkt im Transport, ohne externe Software wie OpenDKIM. Wer dkim_domain, dkim_selector und dkim_private_key im remote_smtp-Transport konfiguriert, hat DKIM ohne zusätzliche Abhängigkeiten produktionsreif.
Die häufigste Falle bei Exim-DMARC-Enforcement sind System-E-Mails: Cron-Benachrichtigungen, Logwatch-Reports und Monitoring-Alerts werden oft über einen separaten lokalen Transport gesendet — ohne DKIM-Signierung. Diese E-Mails erscheinen in DMARC-Reports als fail und blockieren den Weg zu p=reject. Der Wolf-Agents Email Security Scanner prüft Ihre aktuelle DMARC-Policy als Teil der 165 Prüfpunkte und zeigt, ob Ihr DKIM-Record korrekt publiziert ist. Falls Sie DMARC noch nicht eingerichtet haben, starten Sie mit der DMARC-Anleitung für Exim. Nach Erreichen von p=reject ist der nächste Hardening-Schritt MTA-STS für Exim — Transport-Verschlüsselung erzwingen.
Exim als Debian-Standard-MTA läuft auf tausenden Servern — oft ohne explizite DKIM-Konfiguration. NIS2 Art. 21 fordert unabhängig vom eingesetzten MTA Maßnahmen nach dem Stand der Technik. Das BSI empfiehlt p=reject. §38 BSIG: Die Geschäftsleitung haftet persönlich. Der Vorteil von Exim: Native DKIM-Signierung ohne externe Software — die Konfiguration erfolgt direkt im Transport. 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.
Beobachtungsphase bei Exim
Deployen Sie zunächst einen DMARC-Record mit p=none und sammeln Sie 2–4 Wochen DMARC-Reports. Prüfen Sie dabei Ihre Exim-Transport-Konfiguration: Ist dkim_domain, dkim_selector und dkim_private_key im remote_smtp-Transport gesetzt? Inventarisieren Sie alle E-Mail-Pfade — insbesondere System-E-Mails von Cron, Logwatch und Monitoring-Tools, die häufig einen eigenen Transportweg nehmen.
Exim-spezifische Quellen in Reports prüfen
- remote_smtp Transport: Prüfen Sie, ob
dkim_domainalle sendenden Domains enthält — nicht nur die Hauptdomain, sondern auch Alias-Domains und Subdomains - System-E-Mail-Pfade inventarisieren: Cron-Benachrichtigungen, Logwatch-Reports und Monitoring-Alerts werden oft über den lokalen Transport gesendet und erscheinen ohne DKIM-Signierung in Reports
- Split-Config vs. Monolithic: Debian/Ubuntu nutzen Split-Configuration unter
/etc/exim4/conf.d/, manuelle Installationen eine monolithische/etc/exim4/exim4.conf— prüfen Sie mitdpkg-reconfigure exim4-config, welcher Modus aktiv ist - dkim_canon prüfen: Setzen Sie
dkim_canon = relaxed— dies ist die empfohlene Canonicalization und toleriert kleine Modifikationen durch Mail-Relay-Systeme
Quarantäne und Reject bei Exim
Bevor Sie auf p=quarantine wechseln, müssen alle ausgehenden Transporte DKIM-signiert sein — einschließlich der System-E-Mail-Pfade. Nutzen Sie dkim_domain = ${lc:${domain:$h_from:}} im remote_smtp-Transport, um dynamisch die Domain aus dem From-Header zu verwenden. Für jede Domain muss ein eigener DKIM-Schlüssel hinterlegt sein. Wolf-Agents empfiehlt, jede pct-Stufe mindestens 3–5 Tage zu beobachten, bevor Sie weiter erhöhen.
Worauf bei Exim besonders achten
- dkim_domain für alle Domains: Verwenden Sie
dkim_domain = ${lc:${domain:$h_from:}}statt eines festen Domain-Wertes — sonst signieren Alias-Domains und Subdomains nicht korrekt - System-E-Mails über remote_smtp routen: Konfigurieren Sie Router-Regeln so, dass System-E-Mails an externe Empfänger über den
remote_smtp-Transport mit DKIM laufen — oder leiten Sie sie per/etc/aliasesauf eine lokale Adresse um - update-exim4.conf bei Split-Config ausführen: Bei Debian/Ubuntu Split-Configuration werden Änderungen in
/etc/exim4/conf.d/transport/30_exim4-config_remote_smtperst nachupdate-exim4.conf && systemctl reload exim4wirksam - DKIM-Schlüssel-Rotation vorbereiten: Planen Sie vor Phase 3 eine Schlüssel-Rotation — neuen Selektor parallel publizieren, 48 Stunden warten, dann alten Selektor abschalten
# Linux / macOS
dig _dmarc.ihre-domain.de TXT +short
# Windows (PowerShell)
Resolve-DnsName -Name _dmarc.ihre-domain.de -Type TXT | Select-Object -ExpandProperty Strings
# Erwartete Ausgabe nach Phase 3:
# "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc-reports@ihre-domain.de; fo=1" Häufige Probleme bei Exim-Enforcement
Die folgenden drei Probleme treten bei Exim-DMARC-Enforcement besonders häufig auf. Zwei davon sind Exim-spezifische Konfigurationsfallen, die Sie kennen müssen, bevor Sie p=quarantine aktivieren.
System-E-Mails (Cron, Logwatch) ohne DKIM
Symptom: Cron-Benachrichtigungen und Logwatch-Reports zeigen in DMARC-Reports DKIM fail. Nach dem Wechsel auf p=quarantine landen diese System-Mails im Spam oder werden abgewiesen.
Ursache: System-E-Mails werden über den lokalen Transport gesendet, der keine DKIM-Signierung hat. Nur der remote_smtp-Transport ist mit DKIM konfiguriert. E-Mails von Cron, Logwatch und Monitoring-Tools nehmen aber einen anderen Transportpfad.
Lösung: Router-Regeln so anpassen, dass E-Mails an externe Empfänger über den remote_smtp-Transport mit DKIM geroutet werden. Alternativ: /etc/aliases so konfigurieren, dass System-Mails an eine lokale Adresse gehen, von der aus externe Weiterleitung gezielt gesteuert wird.
dkim_domain deckt nicht alle Domains ab
Symptom: E-Mails von Alias-Domains oder Subdomains zeigen in DMARC-Reports DKIM fail, obwohl die Hauptdomain korrekt signiert. Das Problem tritt nach Phase 2 verstärkt auf und blockiert den Weg zu p=reject.
Ursache: In der Exim-Transport-Konfiguration ist dkim_domain nur auf die Hauptdomain gesetzt. E-Mails von Alias-Domains oder Subdomains werden nicht korrekt signiert, weil kein passender DKIM-Schlüssel gefunden wird.
Lösung: dkim_domain = ${lc:${domain:$h_from:}} verwenden, um dynamisch die Domain aus dem From-Header zu nutzen. Für jede sendende Domain einen eigenen DKIM-Schlüssel und DNS-Record hinterlegen. Wolf-Agents empfiehlt, die Vollständigkeit der Domain-Abdeckung vor Phase 2 im Email Security Scanner zu verifizieren.
Split-Config vs. Monolithic verwechselt
Symptom: Konfigurationsänderungen am DKIM-Transport wirken nicht, obwohl die Datei korrekt bearbeitet wurde. Exim ignoriert die neuen DKIM-Parameter nach einem Reload.
Ursache: Debian/Ubuntu nutzen Split-Configuration unter /etc/exim4/conf.d/, während manuelle Installationen eine monolithische /etc/exim4/exim4.conf verwenden. Wer die falsche Datei bearbeitet, ändert eine Datei, die vom aktiven Exim-Prozess nicht gelesen wird.
Lösung: Mit dpkg-reconfigure exim4-config prüfen, welcher Modus aktiv ist. Bei Split-Config die Datei /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp bearbeiten und anschließend update-exim4.conf ausführen, bevor Exim neu geladen wird.
DMARC Enforcement-Roadmap auch für:
Wie steht Ihre Domain bei DMARC Enforcement?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 165 Prüfpunkte.