DMARC für Postfix einrichten
Schritt-für-Schritt-Anleitung: DMARC-Record im DNS anlegen, Alignment über myorigin und OpenDKIM sicherstellen, OpenDMARC für eingehende DMARC-Prüfung installieren und Milter-Integration konfigurieren.
DMARC für Postfix mit OpenDMARC
DMARC besteht bei Postfix aus zwei unabhängigen Komponenten: dem DNS-Record (ausgehend — wird beim DNS-Provider konfiguriert) und OpenDMARC als Milter-Filter (eingehend — prüft DMARC-Policy eingehender E-Mails auf Ihrem Server). Der DNS-Record schützt Ihre Domain gegen Spoofing, OpenDMARC schützt Ihre Nutzer vor gefälschten E-Mails anderer Domains. Das SPF-Alignment hängt bei Postfix von der myorigin-Konfiguration ab: Stimmt der Return-Path (Envelope-From) mit der sichtbaren Absenderdomain überein?
Der Wolf-Agents Email Security Check prüft DMARC auf 35 von 165 Punkten — Policy, Reporting und Alignment. Für NIS2-pflichtige Unternehmen mit eigenem Mailserver ist die Kombination aus DMARC-DNS-Record und OpenDMARC-Milter ein dokumentierbarer Nachweis aktiver E-Mail-Security nach BSI TR-03108 und §38 BSIG.
Hardening-Pfad: Nach DMARC mit p=none folgt der schrittweise Wechsel zu p=quarantine und p=reject — siehe DMARC-Enforcement für Postfix.
DMARC-Record im DNS anlegen
Der DMARC-Record wird beim DNS-Provider angelegt — nicht auf dem Postfix-Server. Postfix benötigt für ausgehende E-Mails keine Konfigurationsänderung.
_dmarc.ihre-domain.de. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@ihre-domain.de; fo=1" Alignment sicherstellen
SPF-Alignment hängt bei Postfix von der myorigin-Einstellung ab. Postfix setzt myorigin als Domain im Envelope-From (Return-Path). Wenn myorigin nicht mit Ihrer From-Header-Domain übereinstimmt, schlägt SPF-Alignment fehl — auch wenn SPF selbst besteht.
# myorigin muss mit Ihrer From-Domain übereinstimmen
myorigin = ihre-domain.de
# Prüfen Sie den aktuellen Wert:
postconf myorigin Alignment-Checkliste für Postfix
- SPF-Alignment:
myoriginmuss mit der From-Header-Domain übereinstimmen - DKIM-Alignment: OpenDKIM (Kapitel 03) muss mit
d=ihre-domain.designieren - Drittanbieter: Newsletter-Tools brauchen Custom-DKIM mit Ihrer Domain
- DMARC besteht wenn SPF-Alignment oder DKIM-Alignment korrekt ist
OpenDMARC installieren und konfigurieren
OpenDMARC ist der Milter-Filter für die eingehende DMARC-Prüfung auf Ihrem Postfix-Server. Er prüft, ob eingehende E-Mails die DMARC-Policy der Absenderdomain erfüllen — und kann sie bei Fehlschlag ablehnen oder markieren.
# Debian / Ubuntu
apt install opendmarc
# RHEL / CentOS / AlmaLinux
dnf install opendmarc AuthservID mail.ihre-domain.de
TrustedAuthservIDs mail.ihre-domain.de
RejectFailures false
SPFSelfValidate true
Socket inet:8893@localhost
IgnoreAuthenticatedClients true # OpenDKIM (8891) VOR OpenDMARC (8893) — Reihenfolge wichtig!
smtpd_milters = inet:localhost:8891, inet:localhost:8893
non_smtpd_milters = inet:localhost:8891, inet:localhost:8893
milter_default_action = accept # OpenDMARC aktivieren und starten
systemctl enable opendmarc
systemctl start opendmarc
# Postfix neu laden
systemctl reload postfix
# Status prüfen
systemctl status opendmarc Starten Sie mit RejectFailures false — OpenDMARC markiert fehlgeschlagene E-Mails nur im Header, lehnt sie aber nicht ab. Wechseln Sie erst zu true, wenn Sie sicher sind, dass keine legitimen E-Mails betroffen sind. Prüfen Sie die Logs: grep opendmarc /var/log/mail.log.
OpenDMARC benötigt die DKIM-Ergebnisse von OpenDKIM. Wenn OpenDMARC vor OpenDKIM in der Milter-Kette steht, fehlen die DKIM-Authentifizierungsergebnisse — DMARC kann dann nur SPF zur Entscheidung nutzen.
DMARC-Record verifizieren
Prüfen Sie den DNS-Record und die OpenDMARC-Integration gleichzeitig: DNS für ausgehenden Schutz, Logs für eingehende Prüfung.
# DNS-Record abfragen
dig _dmarc.ihre-domain.de TXT +short
# OpenDMARC-Status prüfen
systemctl status opendmarc
# Eingehende DMARC-Prüfung in den Logs
grep opendmarc /var/log/mail.log | tail -20
# Test-E-Mail senden und Gmail-Header prüfen:
# dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ihre-domain.de Validieren Sie mit dem Wolf-Agents Email Security Check — dieser prüft DMARC auf 35 Punkte inklusive Policy, Reporting und Alignment.
Reporting einrichten und auswerten
Richten Sie eine dedizierte Mailbox für Aggregate Reports ein. Bei eigenem Postfix-Server können Sie die Reports direkt auf dem Server empfangen und mit Skripten oder Tools auswerten.
Monitoring-Phase (2-4 Wochen)
- Dedizierte Mailbox
dmarc-reports@ihre-domain.deauf dem Postfix-Server einrichten - Aggregate Reports landen als komprimierte XML-Dateien in dieser Mailbox
- Auswertung: dmarcian, Postmark DMARC oder manuell per
zcat | xmllint --format - Alle legitimen Absender identifizieren und SPF/DKIM korrekt konfigurieren
- Erst dann: Policy verschärfen und
RejectFailures truein OpenDMARC aktivieren
Häufige Fehler bei Postfix + OpenDMARC
Die folgenden vier Fehler treten bei Postfix-DMARC-Konfigurationen besonders häufig auf.
Milter-Reihenfolge vertauscht
Problem: OpenDMARC steht in smtpd_milters vor OpenDKIM (Port 8893 vor 8891). OpenDMARC erhält keine DKIM-Ergebnisse und kann nur SPF für die DMARC-Entscheidung nutzen.
Lösung: OpenDKIM (8891) immer vor OpenDMARC (8893) in der Milter-Kette: smtpd_milters = inet:localhost:8891, inet:localhost:8893
myorigin stimmt nicht mit From-Domain überein
Problem: myorigin in main.cf ist auf den Hostnamen (mail.ihre-domain.de) statt auf die Domain (ihre-domain.de) gesetzt. Der Return-Path verwendet den Hostnamen — bei striktem SPF-Alignment (aspf=s) schlägt die Prüfung fehl.
Lösung: myorigin = ihre-domain.de in main.cf setzen. Bei Relaxed Alignment (aspf=r, Default) funktioniert auch der Hostname als Subdomain — aber explizit die Hauptdomain zu setzen ist sauberer.
RejectFailures sofort auf true gesetzt
Problem: RejectFailures true in opendmarc.conf ohne vorherige Testphase. Legitime E-Mails von Domains mit fehlerhafter DMARC-Konfiguration werden abgelehnt — Geschäftskommunikation bricht ab.
Lösung: Mit RejectFailures false starten und die Logs auswerten (grep opendmarc /var/log/mail.log). Erst nach 2-4 Wochen ohne False Positives auf true umstellen.
DNS-Record am Server statt beim DNS-Provider
Problem: Admin versucht den DMARC-TXT-Record in der Postfix-Konfiguration oder in /etc/hosts anzulegen. DMARC ist ein reiner DNS-Record — er hat nichts mit der Postfix-Konfiguration zu tun.
Lösung: Den DMARC-Record beim DNS-Provider (Hetzner DNS Console, Cloudflare, Route 53 etc.) als TXT-Record unter _dmarc.ihre-domain.de anlegen.
DMARC-Anleitung auch für:
Wie steht Ihre Domain bei DMARC?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 165 Prüfpunkte.