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.

Postfix · Schritt für Schritt

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.

1Schritt 1 von 5

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.

DNS TXT-RecordPostfix
_dmarc.ihre-domain.de.  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@ihre-domain.de; fo=1"
2Schritt 2 von 5

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.

/etc/postfix/main.cfAlignment-Check
# myorigin muss mit Ihrer From-Domain übereinstimmen
myorigin = ihre-domain.de

# Prüfen Sie den aktuellen Wert:
postconf myorigin

Alignment-Checkliste für Postfix

  1. SPF-Alignment: myorigin muss mit der From-Header-Domain übereinstimmen
  2. DKIM-Alignment: OpenDKIM (Kapitel 03) muss mit d=ihre-domain.de signieren
  3. Drittanbieter: Newsletter-Tools brauchen Custom-DKIM mit Ihrer Domain
  4. DMARC besteht wenn SPF-Alignment oder DKIM-Alignment korrekt ist
3Schritt 3 von 5

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.

TerminalInstallation
# Debian / Ubuntu
apt install opendmarc

# RHEL / CentOS / AlmaLinux
dnf install opendmarc
/etc/opendmarc.confHauptkonfiguration
AuthservID              mail.ihre-domain.de
TrustedAuthservIDs      mail.ihre-domain.de
RejectFailures          false
SPFSelfValidate         true
Socket                  inet:8893@localhost
IgnoreAuthenticatedClients  true
/etc/postfix/main.cfMilter-Integration
# 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
TerminalDienste starten
# OpenDMARC aktivieren und starten
systemctl enable opendmarc
systemctl start opendmarc

# Postfix neu laden
systemctl reload postfix

# Status prüfen
systemctl status opendmarc
RejectFailures: Erst false, dann true

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.

Milter-Reihenfolge: OpenDKIM VOR OpenDMARC

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.

4Schritt 4 von 5

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.

TerminalVerifikation
# 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.

5Schritt 5 von 5

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)

  1. Dedizierte Mailbox dmarc-reports@ihre-domain.de auf dem Postfix-Server einrichten
  2. Aggregate Reports landen als komprimierte XML-Dateien in dieser Mailbox
  3. Auswertung: dmarcian, Postmark DMARC oder manuell per zcat | xmllint --format
  4. Alle legitimen Absender identifizieren und SPF/DKIM korrekt konfigurieren
  5. Erst dann: Policy verschärfen und RejectFailures true in 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.

Wie steht Ihre Domain bei DMARC?

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