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.
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.
Mailcow Rspamd-DMARC-Modul — Inbound + Outbound Validation
Zwei-Richtungs-Flow-Diagramm mit rspamd-mailcow als Zentralknoten. Inbound-Pfad (links): externe Mail → postfix-mailcow → rspamd-mailcow (milter) prüft SPF/DKIM/From-Alignment → Aktion Pass/Quarantine/Reject. Outbound-Pfad (rechts): lokales Postfach → rspamd-DKIM-Sign-Modul → DMARC-Alignment-Check → postfix-mailcow → externer MX. Rspamd-Module: dmarc.conf + dkim_signing.conf + spf.conf. Konzern: Mailcow GmbH Bielefeld.
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
- Login unter
https://mail.ihre-domain.de/admin - Navigieren Sie zu Configuration → Mail Setup → Mailboxes
- Klick auf Add mailbox
- Username:
dmarc-reports· Domain:ihre-domain.de· Full name:DMARC Aggregate Reports - Password setzen (langes, zufälliges Passwort — wird nur für IMAP-Polling vom Reporting-Tool benötigt)
- Optional: Quota niedrig setzen (z.B. 500 MB) — XML-Reports sind klein, aber kumulieren
- Speichern
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.
# 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" 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).
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.
# 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.
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
- 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 - Option B — dmarc-parser: Schlanker Python-Parser, der die XMLs in JSON konvertiert. Gut für Skript-basierte Auswertung
- 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
- Beobachtungs-Fokus: Auf
source_ip(welche Server senden mit Ihrer Domain?),dkim=pass/failundspf=pass/failachten. Externe sendende IPs ohne Pass = Spoofing-Versuche oder vergessene legitime Sender
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.
DMARC-Anleitung auch für:
Wie steht Ihre Domain bei DMARC?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 165 Prüfpunkte.