So richten Sie Postfix DKIM im Jahr 2026 ein (OpenDKIM & Rspamd)
DKIM in Postfix ist die kryptografische Signatur, die Sie an ausgehende E-Mails anhängen, damit empfangende Server überprüfen können, ob die Nachricht tatsächlich von Ihrer Domain stammt und während der Übertragung nicht verändert wurde.
Postfix erledigt das nicht von selbst. Sie fügen einen „Milter“ (einen E-Mail-Filter) hinzu, der jede Nachricht signiert, sobald sie Ihren Server verlässt.
Diese Anleitung führt Sie Schritt für Schritt durch die gesamte Einrichtung von Postfix DKIM im Jahr 2026: von der Auswahl Ihres Milters über die Generierung moderner Schlüssel bis hin zur Integration in Postfix und der Rotation der Schlüssel, bevor diese zu einem Sicherheitsrisiko werden.
Bevor Sie eine Nachricht signieren können, müssen Sie den Milter auswählen, der die Signierung vornimmt. OpenDKIM und Rspamd sind im Jahr 2026 die beiden gängigsten Optionen für DKIM mit Postfix.
Beide Lösungen authentifizieren Ihre ausgehenden E-Mails korrekt. Sie unterscheiden sich jedoch darin, wie viel Aufwand ihre Ausführung für Sie bedeutet und wie sehr Sie sich künftig auf sie verlassen können.
| Kriterien | OpenDKIM | Rspamd |
|---|---|---|
| Wartungsstatus | Die Aktivitäten im Upstream-Bereich sind gering; letzte stabile Version 2.10.3 (Mai 2015); der Zweig 2.11.0 befindet sich in der Beta-Phase. Debian Testing hat das Paket aufgrund eines Fehlers bei der Abhängigkeit von libmemcached zur automatischen Entfernung (Juni 2026) vorgemerkt. | Aktive Weiterentwicklung, regelmäßige Veröffentlichungen |
| Was es tut | Nur DKIM-Signierung/Überprüfung | DKIM-Signatur sowie umfassende Spam-Filterung |
| Komplexität der Einrichtung | Einfach, auf einen einzigen Zweck ausgerichtet | Mehr bewegliche Teile im vorderen Bereich |
| Postfix-Integration | Milter (Buchse) | Milter (Proxy-Socket) |
| Web-Benutzeroberfläche | Keine | Integriertes Dashboard |
OpenDKIM signiert E-Mails korrekt, und Millionen von Servern sind derzeit darauf angewiesen. Allerdings birgt es ein Wartungsrisiko, das Sie abwägen sollten, bevor Sie darauf aufbauen.
Die letzte stabile Upstream-Version war 2.10.3 vom 12. Mai 2015. Der Zweig 2.11.0, der Unterstützung für Ed25519 hinzufügte, hat den Beta-Status nie verlassen. OpenDKIM signiert E-Mails weiterhin zuverlässig und ist nach wie vor in den Paketen der großen Distributionen enthalten. Allerdings hat Debian Testing die Version 2.11.0~beta2 zur automatischen Entfernung vorgemerkt (derzeit für Juni 2026 geplant), was auf ein Problem mit transitiven Abhängigkeiten zu libmemcached zurückzuführen ist und nicht auf eine Einstellung der Entwicklung durch den Upstream-Entwickler an sich. Überprüfen Sie den aktuellen Paketstatus Ihrer Distribution, bevor Sie OpenDKIM für den langfristigen Einsatz in der Produktion einsetzen.
Sie können es zwar heute einsetzen, aber Sie stützen sich dabei auf Software, deren Upstream-Entwickler seit einem Jahrzehnt keine stabile Version mehr veröffentlicht hat – und genau das ist das langfristige Risiko, das Sie abwägen müssen.
Rspamd ist die aktiv gepflegte Alternative. Es signiert DKIM und filtert Spam über einen einzigen Milter heraus, sodass Sie nur einen statt zwei Dienste betreiben müssen, wenn Sie auch Schutz für eingehende E-Mails wünschen. Postfix ist der am häufigsten verwendete MTA in Kombination mit Rspamd, und Stacks wie Mailcow nutzen ihn für die DKIM-Signierung anstelle von OpenDKIM.
So treffen Sie die richtige Wahl:
So oder so – beide Vorgehensweisen werden im Folgenden behandelt. Springen Sie direkt zu der von Ihnen gewählten Vorgehensweise.
Lesetipp: Was ist DKIM?
Bevor Sie einen Schlüssel generieren oder eine Konfigurationsdatei bearbeiten, stellen Sie sicher, dass diese vier Voraussetzungen bereits erfüllt sind
Wählen Sie zunächst die Schlüsselgröße aus: 2048-Bit-RSA oder Ed25519, sofern sowohl Ihr MTA/Milter als auch Ihr DNS-Anbieter dies unterstützen – verwenden Sie jedoch niemals 1024-Bit. RFC 8301 verbietet SHA-1 (rsa-sha1 DARF NICHT verwendet werden) und empfiehlt 2048-Bit-RSA als Mindestanforderung auf „SHOULD“-Ebene, während 1024-Bit weiterhin die Mindestanforderung des Protokolls bleibt (es MÜSSEN mindestens 1024 Bit verwendet werden). Schwache Schlüssel geben Empfängern einen Grund, Ihren E-Mails zu misstrauen.
OpenDKIM ist der direkteste Weg, um einen Postfix-Server mit einer einzigen Domain mit DKIM-Signatur zu versehen – mit einem Daemon, einem Schlüssel und ohne zusätzliche Komponenten. Diese fünf Schritte führen Sie von einem Server, der unsignierte E-Mails versendet, zu einem Server, der jede ausgehende Nachricht mit einem Schlüssel signiert, den die Empfänger überprüfen können. Jeder Schritt baut auf dem vorherigen auf, befolgen Sie sie daher der Reihe nach.
Installieren Sie zwei Pakete: opendkim (der Signatur-Daemon selbst) und opendkim-tools (die Dienstprogramme, mit denen Sie Schlüssel generieren).
Ubuntu 24.04 / Debian 12:
bash
sudo apt update
sudo apt install opendkim opendkim-tools
RHEL / Rocky 9 (OpenDKIM ist im EPEL-Repository enthalten):
bash
sudo dnf install epel-release
sudo dnf install opendkim opendkim-tools
Aktivieren Sie den Dienst, damit er beim Systemstart gestartet wird:
bash
sudo systemctl enable opendkim
Hinweis: Bei einigen Distributionen können der Name des Dienstes oder der Benutzer/der Gruppe abweichen (z. B. „opendkim“ vs. „opendkim-daemon“, „opendkim:opendkim“ vs. „opendkim:postfix“). Überprüfen Sie die Dokumentation Ihres Pakets oder die systemd-Unit, falls die Befehle nicht übereinstimmen.
Erstellen Sie ein Verzeichnis für die Schlüssel der Domain und generieren Sie anschließend ein 2048-Bit-Schlüsselpaar:
bash
sudo mkdir -p /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \
-D /etc/opendkim/keys/example.com/
Was die einzelnen Flags bewirken:
| Flag | Bedeutung |
|---|---|
| -b 2048 | Schlüsselgröße in Bit – 2048-Bit-RSA |
| -d example.com | Die Domain, für die Sie unterschreiben |
| -s selector2026 | Der Name des Selektors (siehe Anmerkung unten) |
| -D /etc/opendkim/keys/example.com/ | Wo sollen die Ausgabedateien gespeichert werden? |
Auf dem Selektor: das -s -Wert ist die Bezeichnung, die letztendlich in Ihrem DNS-Eintrag erscheint. Verwenden Sie einen auf dem Jahr basierenden Namen wie selector2026. Das kostet Sie jetzt nichts und erleichtert später die Rotation – nächstes Jahr generieren Sie selector2027 , und der alte Eintrag bleibt während der Umstellung aktiv.
Der Befehl erzeugt zwei Dateien:
| Datei | Was es ist | Regel |
|---|---|---|
| selector2026.private | Ihr privater Signaturschlüssel | Geben Sie es niemals weiter; sorgen Sie dafür, dass es nur von OpenDKIM gelesen werden kann. |
| selector2026.txt | Der öffentliche Schlüssel, für DNS formatiert | Das veröffentlichen Sie in Schritt 5 |
Legen Sie nun die Eigentumsrechte fest. Falsche Berechtigungen sind der häufigste Grund dafür, dass OpenDKIM die Signatur nicht vornehmen kann. Überspringen Sie diesen Schritt daher nicht:
bash
sudo chown -R opendkim:opendkim /etc/opendkim/keys
sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private
Passen Sie den Benutzer/die Gruppe an, falls Ihre Distribution andere Bezeichnungen verwendet (z. B. opendkim:postfix). Überprüfen Sie dies anhand der Paketdokumentation oder der systemd-Unit.
OpenDKIM liest seine Haupteinstellungen aus /etc/opendkim.confund verwendet anschließend drei kleine Nachschlage-Dateien, um zu entscheiden, was mit welchem Schlüssel signiert werden soll. Legen Sie zunächst die Kernanweisungen fest:
| Syslog | ja |
|---|---|
| UMask | 2 |
| Modus | s |
| Kanonisierung | entspannt/entspannt |
| Buchse | local:/var/spool/postfix/opendkim/opendkim.sock |
| PidFile | /run/opendkim/opendkim.pid |
| Oversign-Kopfzeilen | Von |
| KeyTable | /etc/opendkim/key.table |
| SigningTable | refile:/etc/opendkim/signing.table |
| ExterneIgnorierliste | /etc/opendkim/trusted.hosts |
| Interne Hosts | /etc/opendkim/trusted.hosts |
Was die wichtigen Richtlinien bewirken:
| Richtlinie | Was es steuert |
|---|---|
| Modi | Nur signieren. Verwenden Sie „sv“, wenn OpenDKIM auch eingehende E-Mails überprüfen soll. |
| Canonicalisierung gelockert/gelockert | Geringfügige Änderungen bei den Leerzeichen während der Übertragung werden toleriert, wodurch die Signaturen gültig bleiben. Hinweis: Die Kanonisierung hat keinen Einfluss auf die DMARC-Ausrichtung. Die DMARC-Ausrichtung hängt davon ab, ob die „d=“-Domäne in der DKIM-Signatur mit der Domäne im „From:“-Header übereinstimmt, und nicht von der Einstellung für die Kanonisierung. |
| Buchse | Hier wartet OpenDKIM auf Postfix. Dieser Pfad muss mit der Einstellung übereinstimmen, die Sie später in Postfix vornehmen. |
| OversignHeaders Von | Signiert den „From“-Header, sodass ein Angreifer keinen zweiten hinzufügen kann – eine kleine, aber wirksame Maßnahme gegen Spoofing. |
| KeyTable / SigningTable | Die beiden Nachschlagedateien, die Domänen mit Selektoren und Schlüsseln verknüpfen (siehe unten). |
Erstellen Sie anschließend die drei Nachschlage-Dateien. Jede hat eine Aufgabe:
| Datei | Stelle | Beispielzeile |
|---|---|---|
| signing.table | Ordnet einen Absender einem Selektor zu | *@example.com selector2026._domainkey.example.com |
| key.table | Ordnet diesen Selektor seinem privaten Schlüssel auf der Festplatte zu | selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private |
| trusted.hosts | Listet Hosts auf, deren ausgehende E-Mails signiert werden sollten | 127.0.0.1 / localhost / ::1 / example.com |
An dieser Stelle scheitern die meisten Konfigurationen, und die Ursache liegt fast immer im Socket. OpenDKIM erstellt eine Socket-Datei, um mit Postfix zu kommunizieren. Wenn Ihr Postfix smtpd in einer chroot-Umgebung ausführt – was in Debian-/Ubuntu-Paketen die Standardeinstellung ist, nicht jedoch in der Upstream-Version von Postfix oder unter RHEL/Rocky –, ist es in /var/spool/postfix eingeschlossen und kann keinen Socket außerhalb dieses Verzeichnisses erkennen. Die beiden stellen niemals eine Verbindung her, und Ihre E-Mails werden ungesigniert versendet.
Die Lösung besteht darin, die Buchse innerhalb Spool-Verzeichnis von Postfix zu legen und dem Postfix-Benutzer Benutzer die Berechtigung, darauf zuzugreifen. Führen Sie die folgenden Schritte der Reihe nach aus:
1. Erstellen Sie das Socket-Verzeichnis im Postfix-Spool:
bash
sudo mkdir -p /var/spool/postfix/opendkim
sudo chown opendkim:postfix /var/spool/postfix/opendkim
Passen Sie die Gruppe an, falls Ihre Distribution stattdessen „opendkim:opendkim“ verwendet.
2. Fügen Sie die Postfix- Benutzer zum opendkim Gruppe hinzufügen, damit er den Socket lesen kann:
bash
sudo gpasswd -a postfix opendkim
3. Überprüfen Sie den Pfad zum Laufzeit-Socket mit opendkim.conf. Unter Ubuntu/Debian legen Sie ihn in /etc/default/opendkim (oder in der systemd-Überschreibung):
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"
4. Richten Sie Postfix auf den Milter aus in /etc/postfix/main.cf:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
Was diese vier Postfix-Anweisungen bedeuten:
| Richtlinie | Zweck |
|---|---|
| milter_default_action = accept | Wenn der Milter ausgefallen ist, fließt die Post weiterhin; ein inaktiver Signierer blockiert Ihre Warteschlange niemals stillschweigend. |
| milter_protocol = 6 | Die Version des Milter-Protokolls, die derzeit von OpenDKIM verwendet wird. |
| smtpd_milters | Wendet den Milter auf E-Mails an, die über SMTP empfangen werden (Ihre ausgehenden Sendungen). |
| non_smtpd_milters | Gilt für E-Mails, die nicht über SMTP empfangen wurden, z. B. lokal generierte E-Mails. |
Der Socket-Pfad in main.cf ist relativ, local:opendkim/opendkim.sock, und nicht der vollständige Dateisystempfad, da Postfix ihn aus seiner chroot-Umgebung heraus liest.
Starten Sie beide Dienste neu, um alle Änderungen zu übernehmen:
bash
sudo systemctl restart opendkim
sudo systemctl restart postfix
Öffnen Sie die Datei mit dem öffentlichen Schlüssel, die Sie in Schritt 2 erstellt haben:
bash
sudo cat /etc/opendkim/keys/example.com/selector2026.txt
Veröffentlichen Sie den Inhalt bei Ihrem DNS-Anbieter als neuen Eintrag:
| Feld | Wert |
|---|---|
| Datensatzname | selector2026._domainkey.example.com |
| Typ | TXT |
| Wert | Alles innerhalb der Klammern (die Zeichenfolge „v=DKIM1; k=rsa; p=...“) |
Da es sich um einen 2048-Bit-Schlüssel handelt, überschreitet der Wert die Begrenzung von 255 Zeichen für eine einzelne TXT-Zeichenkette. Die meisten DNS-Anbieter teilen ihn automatisch auf. Falls Ihr Anbieter ihn ablehnt, teilen Sie den öffentlichen Schlüssel auf zwei in Anführungszeichen gesetzte Zeichenketten innerhalb desselben Eintrags auf, in dem sich die .txt -Datei bereits anzeigt, wo die Aufteilung erfolgt.
Stellen Sie die TTL bei der Einrichtung auf 300 Sekunden ein, damit eventuelle Fehler kostengünstig behoben werden können. Sobald Sie sich vergewissert haben, dass die Signierung funktioniert, erhöhen Sie den Wert auf 3600.
Die DNS-Verbreitung dauert eine Weile, und ein falsch aufgeteilter 2048-Bit-Schlüssel sieht in Ihrem Zonen-Editor zwar korrekt aus, schlägt jedoch fehl, sobald ein Empfänger ihn liest.
Rspamd ist die bessere Wahl, sobald Sie mehr als eine Domain betreiben oder E-Mails im Produktivbetrieb versenden. Es signiert DKIM und filtert Spam aus einem Milter heraus, sodass Sie nur einen statt zwei Dienste verwalten müssen.
Da die Schlüssel automatisch nach Domänen gesucht werden, ist das Hinzufügen Ihrer nächsten Domäne zudem nur eine Änderung von einer Zeile und erfordert keine neue Einrichtung. Hier ist die vollständige Anleitung für Postfix in fünf Schritten.
Die Version in den Basis-Repositories Ihrer Distribution ist in der Regel veraltet; installieren Sie daher aus dem offiziellen stabilen Repository von Rspamd.
bash
sudo apt install -y lsb-release wget gpg
sudo mkdir -p /etc/apt/keyrings
wget -O- https://rspamd.com/apt-stable/gpg.key | \
gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null
echo „deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \
http://rspamd.com/apt-stable/ $(lsb_release -cs) „main“ | \
sudo tee /etc/apt/sources.list.d/rspamd.list
sudo apt update && sudo apt install rspamd
So aktivieren Sie den Start beim Systemstart:
bash
sudo systemctl enable rspamd
Informieren Sie sich stets auf rspamd.com über die aktuellen Installationsanweisungen, da sich die URL des Repositorys und die Schritte zur GPG-Schlüsselverwaltung gelegentlich ändern.
Rspamd enthält einen eigenen Schlüsselgenerator: rspamadm dkim_keygen , für den kein separates Tool-Paket erforderlich ist. Es schreibt den privaten Schlüssel in eine Datei und gibt den öffentlichen Schlüssel (Ihren DNS-Eintrag) auf dem Bildschirm aus, den Sie in eine .pub Datei.
bash
sudo mkdir -p /var/lib/rspamd/dkim
sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \
-k /var/lib/rspamd/dkim/example.com.selector2026.key | \
sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub
sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim
Passen Sie „user/group“ an, falls Ihre Distribution „rspamd:rspamd“ anstelle von „_rspamd:_rspamd“ verwendet. Überprüfen Sie dies in der systemd-Unit Ihres Pakets.
Die Optionen entsprechen denen von OpenDKIM: -s Selektor, -b 2048 Schlüsselgröße, -d Domäne, -k die Ausgabedatei für den privaten Schlüssel. Am Ende erhalten Sie zwei Dateien:
| Datei | Was es ist |
|---|---|
| example.com.selector2026.key | Der private Signaturschlüssel, den Rspamd verwendet. Er muss im Besitz des Benutzers _rspamd bleiben. |
| example.com.selector2026.pub | Den für DNS formatierten öffentlichen Schlüssel veröffentlichen Sie in Schritt 5 |
Rspamd verarbeitet DKIM über seine dkim_signing Modul. Aktivieren Sie es und geben Sie an, wo sich Ihre Schlüssel in /etc/rspamd/local.d/dkim_signing.confangegeben:
selector = „selector2026“;
path = „/var/lib/rspamd/dkim/$domain.$selector.key“;
allow_username_mismatch = true;
use_domain = „header“;
Was die einzelnen Einstellungen bewirken:
| Einstellung | Was es steuert |
|---|---|
| Selektor | Der Name des Selektors muss mit dem Dateinamen Ihres Schlüssels und dem DNS-Eintrag übereinstimmen. |
| Pfad | Wo Rspamd den privaten Schlüssel findet; $domain und $selector werden automatisch ausgefüllt |
| allow_username_mismatch | Wird auch dann signiert, wenn der authentifizierte Benutzername nicht mit der „Von“-Domäne übereinstimmt |
| use_domain = "header" | Ermittelt die Signaturdomäne aus dem „From“-Header der Nachricht |
Das Pfad Zeile macht Rspamd besonders leistungsfähig bei mehreren Domänen. Da sie $domain und $selector nach Dateinamen auflöst, bedeutet das Hinzufügen einer weiteren Domäne lediglich, dass deren Schlüssel im selben Ordner abgelegt wird – ohne neuen Konfigurationsblock und ohne zweiten Daemon.
Richten Sie Postfix auf den Milter von Rspamd in /etc/postfix/main.cfkonfigurieren. Die Anweisungen sind identisch mit denen für die OpenDKIM-Konfiguration, lediglich der Socket ändert sich:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:11332
non_smtpd_milters = $smtpd_milters
Rspamd hört auf seinem Proxy-Worker am TCP-Port 11332 . Da es sich um einen Netzwerk-Socket handelt, umgeht man das Problem mit den Chroot-Socket-Berechtigungen, an dem OpenDKIM scheitert. Die einzige Zeile, die sich bei den beiden Milters unterscheidet:
| Milter | Socket-Zeile in main.cf |
|---|---|
| OpenDKIM | smtpd_milters = local:opendkim/opendkim.sock |
| Rspamd | smtpd_milters = inet:localhost:11332 |
Öffnen Sie den öffentlichen Schlüssel und veröffentlichen Sie ihn genau wie in Schritt 5 von OpenDKIM, mit demselben Format für den Datensatznamen: TXT , und der 255-Zeichen-Trennregel für den 2048-Bit-Schlüssel:
bash
sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub
Optional können Sie das Web-Dashboard aktivieren, indem Sie ein Passwort in der Datei /etc/rspamd/local.d/worker-controller.inc
Damit erhalten Sie einen Echtzeit-Überblick über Signatur- und Spam-Aktivitäten. Starten Sie anschließend beide Dienste neu:
bash
sudo systemctl restart rspamd postfix
Überprüfen Sie den veröffentlichten Eintrag mit einem DKIM-Checker, bevor Sie sich darauf verlassen – genauso wie Sie es nach der Einrichtung von OpenDKIM tun würden.
Rspamd ersetzt sowohl OpenDKIM und SpamAssassin. Falls Sie bisher einen separaten Spamfilter betrieben haben, können Sie diesen hier außer Betrieb nehmen, sodass Sie weniger Dienste, eine geringere Konfigurationsfläche und eine zentrale Verwaltungsstelle für Signierung und Filterung haben.
Es ist üblich, mehrere Domains über einen einzigen Postfix-Server zu betreiben, aber DKIM macht hier keine Abstriche. Jede Domain, von der aus Sie E-Mails versenden, benötigt ein eigenes Schlüsselpaar und einen eigenen DNS-Eintrag, da jede Domain unabhängig authentifiziert wird – es gibt also keinen gemeinsamen Schlüssel, der für alle gilt. Wie Sie skalieren, hängt von dem von Ihnen gewählten Milter ab.
Mit OpenDKIM erweitern Sie die bereits erstellten Tabellen: Generieren Sie für jede neue Domain einen Schlüssel und fügen Sie dann in jeder Lookup-Datei eine Zeile dafür hinzu.
In signing.table:
*@example.com selector2026._domainkey.example.com
*@example.net selector2026._domainkey.example.net
In key.table:
selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private
Jede neue Domäne bedeutet einen weiteren Schlüssel und zwei weitere Zeilen – zwar manuell, aber vorhersehbar.
Mit Rspamd ist die Arbeit bereits für Sie erledigt: Da der Pfad die Einstellung die $domain verwendet, findet Rspamd den Schlüssel jeder Domäne automatisch anhand des Dateinamens. Geben Sie example.net.selector2026.key in dasselbe Verzeichnis, und es signiert auch diese Domäne, ohne dass eine Konfigurationsänderung erforderlich ist. Wenn Sie eine strengere Kontrolle wünschen, können Sie weiterhin domänenbezogene Blöcke in der Datei dkim_signing.confhinzufügen.
Zwei Gewohnheiten sorgen dafür, dass das Signieren in mehreren Domänen überschaubar bleibt:
Das Signieren einer E-Mail und die Überprüfung, ob sie korrekt signiert wurde, sind zwei verschiedene Dinge. Vom Absender aus gesehen kann alles in Ordnung aussehen, während der Empfänger Ihre Signatur stillschweigend ablehnt – und Sie würden davon erst erfahren, wenn die Zustellung fehlschlägt.
Diese fünf Überprüfungen bestätigen, dass DKIM tatsächlich funktioniert – angefangen bei Ihren eigenen Protokollen bis hin zu einem echten Empfänger. Befolgen Sie dabei die folgende Reihenfolge:
Das Mail-Protokoll liefert die schnellste Bestätigung und ist lokal verfügbar. Verfolgen Sie das Protokoll, senden Sie eine Testnachricht und achten Sie auf einen Eintrag zur Signierung:
bash
sudo tail -f /var/log/mail.log
Unter RHEL/Rocky befindet sich die Datei unter /var/log/maillog. Sie suchen nach einer Zeile, aus der hervorgeht, dass die Nachricht mit Ihrem Selektor signiert wurde. Wenn diese Zeile vorhanden ist, funktioniert Ihr Milter einwandfrei.
Die Validierung bestätigt, dass der private Schlüssel auf der Festplatte mit dem von Ihnen veröffentlichten öffentlichen Schlüssel übereinstimmt:
bash
opendkim-testkey -d example.com -s selector2026 -vvv
Schlüssel OK bedeutet, dass die beiden Hälften übereinstimmen. Alles andere deutet auf einen Tippfehler im DNS oder eine Schlüsselinkongruenz hin, die behoben werden muss, bevor es weitergeht.
Dies ist die einzige Überprüfung, die belegt, dass ein Empfänger Ihre Signatur akzeptiert. Senden Sie eine E-Mail an ein Gmail-Konto, öffnen Sie die Nachricht und wählen Sie „Original anzeigen“. Suchen Sie nach DKIM: „PASS“ mit Ihrer Domain, was bedeutet, dass der empfangende Server bestätigt, dass Ihre Signatur verifiziert ist.
Ein DKIM-Checker ruft Ihren veröffentlichten Eintrag ab und wertet ihn so aus, wie es ein empfangender Server tun würde, um zu bestätigen, dass der Schlüssel gültig und vollständig ist.
Probieren Sie es aus den kostenlosen DKIM-Checker von PowerDMARCaus und senden Sie anschließend eine E-Mail an mail-tester.com, um einen umfassenderen Zustellbarkeits-Score zu erhalten, der DKIM neben SPF, DMARC und Spam-Signalen berücksichtigt.
Ihre Signatur kann einwandfrei verifiziert werden, und DMARC kann dennoch fehlschlagen, da DMARC eine Übereinstimmung erfordert: Die Domain in Ihrem DKIM d= -Tag muss mit der Domain im sichtbaren „From:“-Header übereinstimmen.
Anmelden als mail.example.com beim Versenden von „Von“ example.com und „relaxed“ wird das Problem beheben, „strict“ hingegen nicht. Wenn DMARC trotz eines bestandenen DKIM-Tests fehlschlägt, überprüfen Sie, ob Ihre Signaturtabelle der richtigen Domain zugeordnet ist.
Eine bestandene DKIM-Prüfung bestätigt, ob ein Teil der Authentifizierung funktioniert, doch Ihre Zustellbarkeit und Ihr Schutz vor Spoofing hängen von DKIM, SPF und DMARC zusammenwirken.
Der kostenlose Domain Analyzer von PowerDMARC scannt alle drei Aspekte gleichzeitig und gibt eine Bewertung von A bis F aus. So erfahren Sie in einem einzigen Durchgang, ob Ihre Domain tatsächlich durchgängig geschützt ist oder nur teilweise abgedeckt ist.
Wenn Sie auf Probleme wie die „DKIM-passes-but-DMARC-fails“-Falle stoßen, hilft Ihnen der kostenlose E-Mail-Header-Analysator stellt den DKIM- Befund und das Abgleichsergebnis nebeneinander an, sodass Sie die genaue Diskrepanz in Sekundenschnelle lokalisieren können, anstatt die Roh-Header mühsam zu durchforsten.
Ein privater Schlüssel, der jahrelang ungenutzt auf einem Server liegt, birgt ein zunehmend höheres Risiko, offengelegt zu werden. Sollte er jemals nach außen gelangen, kann ein Angreifer E-Mails unter Ihrer Domain signieren, bis Sie dies bemerken.
Durch einen planmäßigen Wechsel, der mindestens einmal im Jahr erfolgt, bleibt dieses Zeitfenster klein. Der auf dem Jahr basierende Selektor sorgt für einen reibungslosen Wechsel.
Der Rotationsvorgang:
Die Überschneidung in den Schritten 5 und 6 ist der Teil, den man nicht überstürzen darf. Wenn man den alten Datensatz zu früh abruft, schlägt die Überprüfung jeder Nachricht, die noch mit ihm abgeglichen wird, fehl – genau die Art von stillschweigendem Authentifizierungsfehler, den DKIM eigentlich verhindern soll.
Weder OpenDKIM noch Rspamd automatisieren die Schlüsselgenerierung, die Veröffentlichung im DNS oder die zeitliche Überlappung. Bei einer einzigen Domain ist das eine einmal im Jahr fällige Kalendererinnerung. Bei fünf oder mehr Domains wird es zu einer wiederkehrenden Aufgabe, die leicht übersehen werden kann, und eine Rotation, die still und leise nie stattfindet, ist eine Compliance-Lücke, die Sie erst bemerken, wenn Sie aufgefordert werden, den Nachweis zu erbringen.
DKIM-Probleme bei Postfix lassen sich oft auf einige wenige vorhersehbare Ursachen zurückführen, vor allem auf Socket-Berechtigungen, Schlüsselpfade und die Domänenzuordnung. In der folgenden Tabelle werden die bei Ihnen auftretenden Symptome den wahrscheinlichsten Ursachen und den entsprechenden Lösungen zugeordnet, sodass Sie direkt zu Ihrem Problem springen können.
| Fehler | Mögliche Ursache | Fix |
|---|---|---|
| Keine DKIM-Signatur in den Headern | Milter nicht angeschlossen oder Anschluss nicht kompatibel | Stellen Sie sicher, dass der Socket-Pfad in den Dateien „opendkim.conf“ und „main.cf“ übereinstimmt; überprüfen Sie, ob der Postfix-Benutzer Mitglied der Gruppe „opendkim“ ist. |
| Verbindung zum Milter-Dienst herstellen... Verbindung abgelehnt | Der OpenDKIM-Daemon läuft nicht | systemctl start opendkim; überprüfen Sie, ob die Socket-Datei tatsächlich im Spool-Verzeichnis vorhanden ist |
| opendkim: Schlüsselabruf fehlgeschlagen | Falscher Pfad in der Schlüsseltabelle oder falsche Berechtigungen | Überprüfen Sie den Pfad „.private“ in der Datei „key.table“; führen Sie den Befehl „chown opendkim:opendkim“ für den Schlüssel aus. |
| DKIM wird bestanden, DMARC jedoch nicht | Ausrichtungsabweichung | Die Signaturdomäne (d=) muss mit der Domäne im „From:“-Header übereinstimmen; es gilt eine lockere Übereinstimmungsregel. |
| 2048-Bit-Schlüssel vom DNS abgelehnt | 255-Zeichen-TXT-Limit des Anbieters | Den öffentlichen Schlüssel auf zwei in Anführungszeichen gesetzte Zeichenfolgen im selben TXT-Eintrag aufteilen |
Für eine einzelne Domain ist selbstverwaltetes DKIM unter Postfix die perfekte Wahl. Man konfiguriert es einmal, und es erledigt seine Aufgabe – doch wenn das Versandvolumen wächst, wird der damit verbundene manuelle Aufwand eher zu einer Risikoquelle als zu einem Kontrollinstrument.
Ein paar Anzeichen dafür, dass du diesen Punkt erreicht hast:
Wenn Sie mit diesen Herausforderungen konfrontiert sind, dann schließt die gehostete DKIM-Verwaltung diese Lücken, indem es die manuellen Schritte vollständig überflüssig macht. Hier sehen Sie, wie sich die manuelle DKIM-Verwaltung von der gehosteten DKIM-Verwaltung unterscheidet:
| Aufgabe | Handbuch (OpenDKIM / Rspamd) | Gehostetes DKIM |
|---|---|---|
| Schlüsselrotation | Manuell in jedem Zyklus: erstellen, veröffentlichen, überlappen, aus dem Verkehr ziehen | Automatisch, keine DNS-Änderung pro Zyklus |
| Mehrere Domains | Separate Schlüssel, Datensätze und Konfigurationen pro Domain | Zentral verwaltet |
| Schlüsselgröße | 2048 Bit (oder Ed25519) | Bis zu 4096 Bit |
| Verwaltung der Auswahlkriterien | Manuell erfasst | Wird bei den wichtigsten ESPs automatisch erkannt |
| DNS-Wartung | Bei jeder Rotation bearbeitet | Ein einziger CNAME, einmal veröffentlicht |
Wenn Sie DKIM für mehrere Domains verwalten oder eine zuverlässige Rotation benötigen, die den Compliance-Anforderungen entspricht, entlastet Sie der Hosted-DKIM-Dienst von PowerDMARC von manuellem Aufwand und den damit verbundenen Risiken.
Starten Sie Ihre 15-tägige kostenlose Testphase
Postfix DKIM ist die kryptografische Signierung ausgehender E-Mails auf einem Postfix-Server, damit Empfänger überprüfen können, ob die E-Mail unverändert von Ihrer Domain stammt. Da Postfix über keinen integrierten Signierer verfügt, leitet es jede Nachricht an einen Milter – OpenDKIM oder Rspamd – weiter, der die Signatur hinzufügt.
OpenDKIM ist ein eigenständiger Milter, der DKIM für Postfix und andere MTAs signiert und verifiziert – und sonst nichts. Er ist einfach zu handhaben und weit verbreitet, es gibt jedoch seit 2021 keine stabile Version mehr; bedenken Sie daher das Wartungsrisiko bei langfristigen Installationen.
Rspamd ist ein aktiv gepflegtes Spam-Filtersystem, dessen DKIM-Signaturmodul Postfix-E-Mails signieren kann. Da es Filterung und Signierung in einem einzigen Milter vereint, ersetzt es sowohl OpenDKIM als auch SpamAssassin und ist damit die bessere Wahl für 2026 für Server mit mehreren Domänen oder Produktionsserver.
Postfix ist ein weit verbreiteter Open-Source-Mail-Transfer-Agent (MTA), der E-Mails auf Unix-ähnlichen Servern weiterleitet und zustellt. Er sendet und empfängt E-Mails, führt jedoch keine DKIM-Signierung durch; hierfür ist ein separater Milter wie OpenDKIM oder Rspamd erforderlich.
Für einfache Konfigurationen mit einer einzigen Domain funktioniert OpenDKIM nach wie vor einwandfrei. Für Server mit mehreren Domains oder Produktionsserver ist Rspamd die bessere Wahl. Es wird aktiv weiterentwickelt und vereint DKIM-Signierung und Spamfilterung in einem Milter.
Überprüfen Sie /var/log/mail.log auf Signatur-Einträge, führen Sie opendkim-testkeyaus, senden Sie eine Test-E-Mail an Gmail und überprüfen Sie die Raw-Header auf DKIM: PASSzu überprüfen, oder lassen Sie Ihre Domain durch einen kostenlosen DKIM-Checker laufen.
