Zum Hauptinhalt springen
Zurück zur Kategorie

SPF, DKIM und DMARC Konfigurationsanleitung

Vollständige Anleitung zur Konfiguration von SPF-Einträgen, DKIM-Signierung, DMARC-Richtlinien, DNS-Einträgen und Testtools zur Verbesserung der E-Mail-Zustellbarkeit und Sicherheit.

Lesezeit: 15 Min. E-Mail
spfdkimdmarce-maildnssicherheitmail
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

Einführung

Die Zustellbarkeit und Vertrauenswürdigkeit von E-Mails hängt von der korrekten DNS-Konfiguration ab. SPF (Sender Policy Framework), DKIM (DomainKeys Identified Mail) und DMARC (Domain-based Message Authentication, Reporting & Conformance) verhindern, dass Ihre E-Mails im Spam-Ordner landen, und schützen vor Domain-Spoofing.

In dieser Anleitung konfigurieren wir Schritt für Schritt SPF-, DKIM- und DMARC-Einträge, um Ihre E-Mail-Versandinfrastruktur auf Ihrem REXE-Server abzusichern.

Was ist SPF (Sender Policy Framework)?

SPF ist ein DNS-Eintrag, der festlegt, welche Server berechtigt sind, E-Mails im Namen Ihrer Domain zu versenden. Der empfangende Mailserver prüft, ob die eingehende E-Mail von einer im SPF-Eintrag angegebenen IP-Adresse stammt.

SPF-Eintrag erstellen

Fügen Sie ihn als TXT-Eintrag in Ihrem DNS-Verwaltungspanel hinzu:

hljs dns
@ IN TXT "v=spf1 ip4:SERVER_IP_ADRESSE -all"

Wenn Sie mehrere Server verwenden:

hljs dns
@ IN TXT "v=spf1 ip4:IP_ADRESSE_1 ip4:IP_ADRESSE_2 include:_spf.google.com -all"

SPF-Mechanismen

MechanismusBeschreibung
ip4:Bestimmte IPv4-Adresse oder CIDR-Block
ip6:Bestimmte IPv6-Adresse oder CIDR-Block
include:SPF-Eintrag einer anderen Domain einbeziehen
aIP im A-Eintrag der Domain erlauben
mxServer im MX-Eintrag der Domain erlauben
allRichtlinie für alle anderen Quellen

SPF-Qualifizierer

+all  → Pass (alle erlauben — NICHT EMPFOHLEN)
~all  → SoftFail (nicht autorisierte markieren, aber nicht ablehnen)
-all  → Fail (nicht autorisierte ablehnen — EMPFOHLEN)
?all  → Neutral (keine Prüfung)

Verwenden Sie immer -all oder mindestens ~all in Ihrem SPF-Eintrag. Die Verwendung von +all macht Ihre Domain anfällig für Spoofing.

SPF-Eintrag testen

hljs bash
# SPF-Eintrag mit dig abfragen
dig TXT beispieldomain.de +short

# Mit nslookup abfragen
nslookup -type=TXT beispieldomain.de

Online-Tools:

Was ist DKIM (DomainKeys Identified Mail)?

DKIM ist ein Protokoll, das ausgehenden E-Mails eine digitale Signatur hinzufügt und überprüft, dass die Nachricht während der Übertragung nicht verändert wurde. Der sendende Server signiert mit einem privaten Schlüssel, der empfangende Server verifiziert mit dem öffentlichen Schlüssel im DNS.

DKIM-Schlüsselpaar generieren

Erstellen Sie ein 2048-Bit-RSA-Schlüsselpaar mit OpenSSL:

hljs bash
# Privaten Schlüssel generieren
openssl genrsa -out dkim_private.pem 2048

# Öffentlichen Schlüssel extrahieren
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem

# Öffentlichen Schlüssel in DNS-Format konvertieren
cat dkim_public.pem | grep -v '^-' | tr -d '\n'

DKIM-Konfiguration mit Postfix (OpenDKIM)

OpenDKIM installieren:

hljs bash
sudo apt update
sudo apt install opendkim opendkim-tools -y

Schlüssel generieren:

hljs bash
sudo mkdir -p /etc/opendkim/keys/beispieldomain.de
sudo opendkim-genkey -b 2048 -d beispieldomain.de -D /etc/opendkim/keys/beispieldomain.de -s default -v
sudo chown -R opendkim:opendkim /etc/opendkim

OpenDKIM-Konfigurationsdatei (/etc/opendkim.conf):

hljs conf
AutoRestart             Yes
AutoRestartRate         10/1h
SyslogSuccess           Yes
LogWhy                  Yes

Canonicalization        relaxed/simple
Mode                    sv
SubDomains              no

OversignHeaders         From

KeyTable                refile:/etc/opendkim/key.table
SigningTable            refile:/etc/opendkim/signing.table
ExternalIgnoreList      /etc/opendkim/trusted.hosts
InternalHosts           /etc/opendkim/trusted.hosts

Socket                  inet:8891@localhost

Key-Table-Datei (/etc/opendkim/key.table):

default._domainkey.beispieldomain.de beispieldomain.de:default:/etc/opendkim/keys/beispieldomain.de/default.private

Signing-Table-Datei (/etc/opendkim/signing.table):

*@beispieldomain.de default._domainkey.beispieldomain.de

Trusted-Hosts-Datei (/etc/opendkim/trusted.hosts):

127.0.0.1
localhost
beispieldomain.de

DKIM-DNS-Eintrag hinzufügen

Fügen Sie den generierten öffentlichen Schlüssel als TXT-Eintrag im DNS hinzu:

hljs dns
default._domainkey IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhki...(OEFFENTLICHER_SCHLUESSEL)..."

DKIM-Schlüssel sollten 2048-Bit sein. 1024-Bit-Schlüssel gelten nicht mehr als sicher.

Postfix-Integration

Zur Postfix-Konfiguration (/etc/postfix/main.cf) hinzufügen:

hljs conf
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters

Dienste neu starten:

hljs bash
sudo systemctl restart opendkim
sudo systemctl restart postfix

DKIM-Eintrag testen

hljs bash
# DKIM-Eintrag aus DNS abfragen
dig TXT default._domainkey.beispieldomain.de +short

# OpenDKIM-Testtool
opendkim-testkey -d beispieldomain.de -s default -vvv

Was ist DMARC (Domain-based Message Authentication)?

DMARC kombiniert SPF- und DKIM-Ergebnisse und gibt Domain-Inhabern die Möglichkeit, E-Mail-Authentifizierungsrichtlinien festzulegen und Berichte zu erhalten. Der empfangende Server handelt gemäß der DMARC-Richtlinie bei E-Mails, die die SPF- oder DKIM-Überprüfung nicht bestehen.

DMARC-Eintrag erstellen

Als TXT-Eintrag im DNS hinzufügen:

hljs dns
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@beispieldomain.de; ruf=mailto:dmarc-forensic@beispieldomain.de; fo=1; adkim=r; aspf=r; pct=100"

DMARC-Richtlinienebenen

RichtlinieBeschreibungVerwendung
p=noneNur berichten, keine AktionErste Phase — Überwachung
p=quarantineIn Spam-Ordner verschiebenMittlerer Schutz
p=rejectE-Mail vollständig ablehnenVoller Schutz

Schrittweise DMARC-Implementierungsstrategie

Die schrittweise Implementierung von DMARC ist der sicherste Ansatz:

# Phase 1: Überwachung (2-4 Wochen)
_dmarc IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@beispieldomain.de; fo=1"

# Phase 2: Quarantäne (2-4 Wochen)
_dmarc IN TXT "v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@beispieldomain.de"

# Phase 3: Quarantäne erhöhen
_dmarc IN TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@beispieldomain.de"

# Phase 4: Voller Schutz
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@beispieldomain.de; ruf=mailto:dmarc-forensic@beispieldomain.de"

Sie können kostenlose Tools wie dmarcian.com, postmarkapp.com/dmarc oder easydmarc.com verwenden, um DMARC-Berichte zu analysieren.

Alle Einträge überprüfen

Überprüfen Sie alle E-Mail-Sicherheitseinträge auf einmal:

hljs bash
# SPF-Prüfung
dig TXT beispieldomain.de +short | grep spf

# DKIM-Prüfung
dig TXT default._domainkey.beispieldomain.de +short

# DMARC-Prüfung
dig TXT _dmarc.beispieldomain.de +short

# MX-Eintrag-Prüfung
dig MX beispieldomain.de +short

E-Mail-Versandtest

Senden Sie eine Test-E-Mail über die Kommandozeile:

hljs bash
# Detaillierter Test mit swaks
sudo apt install swaks -y
swaks --to test@gmail.com --from info@beispieldomain.de --server localhost --tls

Häufige Fehler und Lösungen

FehlerUrsacheLösung
SPF PermErrorMehr als 10 DNS-Lookupsinclude-Anzahl reduzieren, IP-Blöcke zusammenfassen
DKIM failSchlüssel-NichtübereinstimmungÖffentlicher Schlüssel im DNS muss mit privatem Schlüssel auf dem Server übereinstimmen
DMARC failSPF- und DKIM-Alignment-FehlerFrom-Header-Domain muss mit SPF/DKIM-Domain übereinstimmen
SoftfailVerwendung von ~all im SPF-EintragDurch -all ersetzen
Body hash mismatchE-Mail während der Übertragung verändertCanonicalization auf relaxed/relaxed setzen

Fazit

Das SPF-, DKIM- und DMARC-Trio bildet das Fundament der E-Mail-Sicherheit. Die korrekte Konfiguration dieser drei Protokolle verbessert die E-Mail-Zustellbarkeit, verhindert Domain-Spoofing und schützt den Ruf Ihrer Marke. Implementieren Sie DMARC schrittweise, analysieren Sie Berichte und stellen Sie sicher, dass alle legitimen Versandquellen mit SPF und DKIM kompatibel sind, bevor Sie zum vollen Schutz übergehen.

Häufig gestellte Fragen

Kann ich E-Mails ohne SPF-Eintrag versenden?

Technisch ja, aber E-Mails von Domains ohne SPF-Einträge landen höchstwahrscheinlich im Spam oder werden abgelehnt. Große Anbieter wie Gmail und Outlook erzwingen SPF-Prüfungen.

Wie lang sollte ein DKIM-Schlüssel sein?

Es sollte mindestens ein 2048-Bit-RSA-Schlüssel verwendet werden. 1024-Bit-Schlüssel gelten nicht mehr als sicher. Einige Anbieter unterstützen 4096-Bit-Schlüssel, aber 2048-Bit ist aufgrund der DNS-TXT-Eintrag-Größenbeschränkung die häufigste Wahl.

Kann ich die DMARC-Richtlinie direkt auf reject setzen?

Nicht empfohlen. Beginnen Sie mit p=none zur Überwachung, analysieren Sie Berichte, stellen Sie sicher, dass alle legitimen Versandquellen mit SPF und DKIM kompatibel sind, und wechseln Sie dann schrittweise zu quarantine und reject.

Wie viele includes kann ich in einem SPF-Eintrag verwenden?

Der SPF-Standard erlaubt maximal 10 DNS-Lookups. Jeder include-, a- und mx-Mechanismus zählt als ein Lookup. Das Überschreiten dieses Limits führt zu einem SPF PermError. Sie können die Lookup-Anzahl reduzieren, indem Sie IP-Adressen direkt angeben.

Meine E-Mails landen immer noch im Spam, was soll ich tun?

Überprüfen Sie, ob SPF-, DKIM- und DMARC-Einträge korrekt konfiguriert sind. Stellen Sie sicher, dass der Reverse-DNS-Eintrag (PTR) mit dem Server-Hostnamen übereinstimmt. Prüfen Sie unter mxtoolbox.com/blacklists.aspx, ob Ihre IP-Adresse auf einer Blacklist steht. Vermeiden Sie Spam-Trigger-Wörter im E-Mail-Inhalt.

Verwandte Artikel

Mail-Server-Einrichtung: Postfix und Dovecot

Vollständige Anleitung zur Einrichtung von Postfix MTA, Dovecot IMAP/POP3, SSL/TLS-Konfiguration, virtueller Domain-Unterstützung, Spam-Filterung und Docker Mail Server.

20 Min.
mailpostfixdovecot

E-Mail-Blacklist-Entfernung: Anleitung

Anleitung zur Blacklist-Prüfung, Delisting-Anträgen, Spamhaus/Barracuda/SORBS-Verfahren und IP-Reputationsmanagement.

12 Min.
blacklistdelistingspamhaus
NetzwerkverkehrEingehend GbpsAusgehend Gbps