DMARC für Mailcow einrichten

Schritt-für-Schritt-Anleitung: DMARC-Record mit p=reject im DNS anlegen, rua-Postfach in Mailcow für tägliche Aggregate-Reports einrichten, Alignment mit Mailcow-SPF/DKIM verifizieren.

Mailcow · Schritt für Schritt

DMARC für Mailcow (Self-Hosted Docker)

Mailcow ist ein Self-Hosted-Mailserver — Sie haben volle Kontrolle über alle ausgehenden Sender und können DMARC ab Tag 1 mit p=reject aktivieren. Das integrierte Mailcow-Postfach dient direkt als rua-Empfänger, ein externes Reporting-Tool ist optional. SPF (v=spf1 mx a -all, siehe DKIM-Anleitung) und DKIM (RSA 2048-Bit, Selektor dkim aus dem Mailcow-UI) sind alignment-konform, weil Mailcow mit der Header-From-Domain versendet und signiert.

Anders als bei Managed-Providern fehlt bei Mailcow kein DMARC-Dashboard — Rspamd selbst hat ein integriertes DMARC-Modul, das Empfänger-Mails gegen die DMARC-Policy der Absender-Domain prüft und im History-UI Statistiken zeigt. Für Aggregate-Reports von externen Empfängern empfangen Sie XML-Daten in einem normalen Postfach und werten sie mit dmarc-parser, parsedmarc oder einem externen Tool aus. Der Wolf-Agents Email Security Check verifiziert die DMARC-Syntax, validiert die rua-Empfänger-Domain per DNS-Authorization (RFC 7489 § 7.1), prüft das DKIM-Header-Alignment, meldet den fehlenden sp=-Subdomain-Override als Spoofing-Risiko und erkennt Drift zwischen Mailcow-Konfiguration und tatsächlicher DNS-Policy.

Hardening-Pfad: DMARC p=reject kombiniert mit SPF Hardfail (-all) und DKIM RSA 2048-Bit ist die vollständige Sender-Authentifizierungs-Triple. Nächster Schritt: MTA-STS für Mailcow — Transport-Verschlüsselung erzwingen. Falls Sie schrittweise vorgehen wollen: DMARC-Enforcement-Roadmap für Mailcow. Bedrohungs-Cluster: DMARC p=reject stoppt Business Email Compromise (FBI IC3 2024: 2,77 Mrd. USD Schaden) und CEO-Phishing mit Ihrer Mailcow-Domain noch vor der Zustellung beim Empfänger.

1 Schritt 1 von 4

rua-Postfach in Mailcow anlegen

Bevor Sie den DMARC-Record im DNS aktivieren, legen Sie das Empfänger-Postfach für Aggregate-Reports an. Sonst bouncen alle Reports und sendende Server (Google, Microsoft) stoppen den Versand nach mehreren Tagen.

Postfach im Mailcow Admin-UI anlegen

  1. Login unter https://mail.ihre-domain.de/admin
  2. Navigieren Sie zu Configuration → Mail Setup → Mailboxes
  3. Klick auf Add mailbox
  4. Username: dmarc-reports · Domain: ihre-domain.de · Full name: DMARC Aggregate Reports
  5. Password setzen (langes, zufälliges Passwort — wird nur für IMAP-Polling vom Reporting-Tool benötigt)
  6. Optional: Quota niedrig setzen (z.B. 500 MB) — XML-Reports sind klein, aber kumulieren
  7. Speichern
2 Schritt 2 von 4

DMARC-TXT-Record im DNS hinterlegen

Erstellen Sie einen TXT-Record beim DNS-Provider. Bei Mailcow können Sie ab Tag 1 p=reject setzen, weil Sie als Self-Hoster alle Sender kontrollieren. Wer schrittweise vorgehen möchte, beginnt mit p=none für 2-4 Wochen Beobachtung — siehe DMARC-Enforcement-Roadmap für Mailcow.

DNS TXT-Record (Mailcow-empfohlen) DMARC
# Empfohlener Final-Record für Mailcow (nach 2-4 Wochen Beobachtung)
_dmarc.ihre-domain.de.  IN  TXT  "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:dmarc-reports@ihre-domain.de; ruf=mailto:dmarc-reports@ihre-domain.de; fo=1; ri=86400"

# Startvariante (für Beobachtungsphase)
_dmarc.ihre-domain.de.  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@ihre-domain.de; fo=1"
sp=reject von Anfang an

Der sp=-Tag setzt die Subdomain-Policy explizit. Bei Mailcow ist sp=reject sinnvoll, weil Sie alle aktiven Subdomains kennen und sie selbst per dedizierter Konfiguration mit eigenen Records ausstatten können. Ohne sp= bleiben unbenutzte Subdomains offen für SubdoMailing-Angriffe (Guardio Labs 2024: 8.000+ Marken-Subdomains betroffen).

3 Schritt 3 von 4

Alignment mit Mailcow-SPF/DKIM verifizieren

DMARC verlangt, dass entweder SPF oder DKIM aligned ist — also dieselbe Domain wie die Header-From-Adresse autorisiert. Mailcow versendet mit Header-From-Domain als Return-Path (für SPF-Alignment) und als DKIM-d=-Domain — beide Seiten sind alignment-konform per Default.

Terminal — Verifikation Verifikation
# DMARC-Record abfragen
dig _dmarc.ihre-domain.de TXT +short

# Erwartete Ausgabe:
# "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:..."

# SPF und DKIM gemeinsam prüfen
dig TXT ihre-domain.de +short                          # SPF
dig TXT dkim._domainkey.ihre-domain.de +short          # DKIM

# Test-Mail an externes Postfach senden, Header prüfen:
# Authentication-Results: mx.google.com;
#       spf=pass smtp.mailfrom=mail.ihre-domain.de;
#       dkim=pass header.i=@ihre-domain.de header.s=dkim;
#       dmarc=pass header.from=ihre-domain.de

# Mailcow Rspamd-Logs prüfen (lokales DMARC-Modul für Empfänger)
docker compose logs rspamd-mailcow | grep -i "dmarc"

Wolf-Agents Stack Detection erkennt zudem Provider-Wechsel beim Lieferanten oder eigenen Sub-Dienst — verlinkt zu VEC (Vendor Email Compromise) und SubdoMailing.

4 Schritt 4 von 4

Aggregate-Reports auswerten

Tägliche XML-Aggregate-Reports landen im dmarc-reports@ihre-domain.de-Postfach. Sie zeigen pro sendender IP, ob Mails Ihrer Domain DMARC-konform waren. Drei Auswertungs-Optionen:

Auswertungs-Optionen

  1. Option A — parsedmarc CLI: Open-Source-Tool, das DMARC-XML-Reports aus IMAP holt und in Elasticsearch oder Kibana visualisiert. Komplett kostenlos und on-prem. Setup: pip install parsedmarc
  2. Option B — dmarc-parser: Schlanker Python-Parser, der die XMLs in JSON konvertiert. Gut für Skript-basierte Auswertung
  3. Option C — Externes Tool: dmarcian, Postmark DMARC oder EasyDMARC bieten gehostete Dashboards mit komfortablen Visualisierungen. Kostenpflichtig, aber für Einstieg meist gratis bis 10.000 Mails/Monat
  4. Beobachtungs-Fokus: Auf source_ip (welche Server senden mit Ihrer Domain?), dkim=pass/fail und spf=pass/fail achten. Externe sendende IPs ohne Pass = Spoofing-Versuche oder vergessene legitime Sender
Option D — Rspamd-internes DMARC-Reporting (Information-Gain)

Mailcow liefert Rspamd ab Version 3.0 mit nativem DMARC-Reporting aus — der Versand erfolgt über rspamadm dmarc_report. Die Konfigurationsdatei data/conf/rspamd/local.d/dmarc.conf benötigt einen reporting-Block mit Pflichtparametern enabled = true, email (Absender-Adresse), domain (Zieldomain) und org_name (Organisationsname). So generiert Mailcow eigene Aggregate-Reports für eingehende Mails an Ihre Empfänger-Domains — komplett ohne externes Tool. Mit no_sampling_domains können Domains immer mit voller Policy ausgewertet werden, unabhängig vom pct=-Sampling. Quelle: docs.rspamd.com/modules/dmarc (abgerufen 2026-05-13).

Häufige Fehler bei Mailcow-DMARC

Diese drei Fehler treten bei der DMARC-Konfiguration mit Mailcow besonders häufig auf — alle drei können dazu führen, dass Reports verloren gehen oder DMARC für Subdomains umgangen wird.

rua-Postfach fehlt — Reports bouncen

Problem: Im DMARC-Record steht rua=mailto:dmarc-reports@ihre-domain.de, aber im Mailcow Admin-UI wurde noch kein Mailbox angelegt. Sendende Server (Google, Microsoft) versuchen täglich, XML-Reports zu zustellen, bekommen aber 5.1.1 unknown user. Nach mehreren Tagen Bounces stoppt der Versand — die wertvollen Reports gehen für immer verloren und Sie haben keine Datenbasis für die Enforcement-Roadmap.

Lösung: Vor Aktivierung des DMARC-Records das Postfach dmarc-reports@ im Mailcow Admin-UI anlegen (siehe Schritt 1). Nach 24h Test-Versand prüfen, ob bereits Reports im Postfach angekommen sind — wenn ja, ist die Pipeline funktionsfähig.

sp=-Tag fehlt — Subdomains offen

Problem: Der DMARC-Record enthält p=reject, aber kein expliziter sp=-Tag. Standardmäßig fällt die Subdomain-Policy auf p= zurück (RFC 7489) — das wäre korrekt. Bei Mailcow-Setups, in denen Sie nur eine Handvoll Subdomains tatsächlich für E-Mail nutzen, sind aber alle anderen Subdomains für SubdoMailing-Angriffe offen, weil die Empfänger den Subdomain-Spoofing-Schutz nicht explizit als „enforced“ interpretieren.

Lösung: sp=reject explizit setzen — die Subdomain ist dann auch ohne eigene SPF/DKIM-Konfiguration komplett für Spoofing geschützt. Bei tatsächlichen Sub-Sendern (z.B. news.ihre-domain.de für Marketing) auf der Subdomain einen eigenen DMARC-Record mit eigener Policy anlegen.

Mailcow signiert mit Subdomain-d=, DMARC bricht

Problem: Im Mailcow Admin-UI wurde DKIM nur für die Hauptdomain ihre-domain.de generiert, aber Mailcow versendet auch von einer Subdomain-Mailbox (z.B. support@hilfe.ihre-domain.de). Mailcow signiert dann mit d=hilfe.ihre-domain.de — die Subdomain hat aber keinen DKIM-Public-Key im DNS, also schlägt DKIM mit none oder temperror fehl und DMARC mit p=reject blockt die Mail.

Lösung: Für jede Subdomain, von der Mailcow versendet, im Admin-UI unter Configuration → Mail Setup → Domains die Subdomain als separate Domain anlegen und einen eigenen DKIM-Key generieren. Den DNS-TXT-Record für dkim._domainkey.hilfe.ihre-domain.de ergänzen.

NIS2, BSI TR-03108 und DSGVO Art. 32: DMARC bei Mailcow

DMARC ist die übergeordnete Sender-Authentifizierungs-Policy einer Domain — sie bindet SPF- und DKIM-Ergebnisse zu einer durchsetzbaren Anweisung an Empfänger. NIS2 Art. 21 Abs. 2 lit. h (Konzepte und Verfahren für den Einsatz von Kryptografie und Verschlüsselung) verlangt eine kryptografisch verankerte Sender-Policy — DMARC ist diese Maßnahme. BSI TR-03108 nennt DMARC als Mindestanforderung für sicheren E-Mail-Transport. DSGVO Art. 32 fordert technische Maßnahmen zur Sicherheit der Verarbeitung — eine durchsetzbare Sender-Policy ist ein direkter Schutz personenbezogener Daten vor Identitätsmissbrauch der Domain. Bei Mailcow-Self-Hosting liegt die Verantwortung vollständig bei Ihnen — keine AVV-Delegation an einen Provider möglich. Wolf-Agents empfiehlt für Mailcow direktes p=reject; sp=reject; pct=100 ab Tag 1 oder die schrittweise Enforcement-Roadmap für komplexe Multi-Sender-Setups. Der Wolf-Agents Email Security Check bewertet DMARC mit bis zu 22 Punkten der 165-Punkte-Analyse.

Wie steht Ihre Domain bei DMARC?

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