So richten Sie Postfix DKIM im Jahr 2026 ein (OpenDKIM & Rspamd)

vonNajeeb VV,

Zuletzt aktualisiert:
13 Lesezeit: 13 Minuten
So richten Sie Postfix DKIM im Jahr 2026 ein (OpenDKIM & Rspamd)

Wichtigste Erkenntnisse

  • Postfix verfügt über keinen integrierten DKIM-Signierer, daher wird ein Milter (OpenDKIM oder Rspamd) eingebunden, der jede ausgehende Nachricht signiert, bevor sie den Server verlässt.
  • OpenDKIM funktioniert zwar weiterhin zum Signieren, doch die Entwicklung auf der Upstream-Ebene war in den letzten Jahren eher spärlich. Wählen Sie diese Lösung für einfache Ein-Domain-Konfigurationen, bei denen Sie die aktuelle Unterstützung durch die Distribution überprüfen können, und bevorzugen Sie Rspamd für Multi-Domain- oder Produktions-E-Mails.
  • Verwenden Sie mindestens 2048-Bit-RSA-Schlüssel; 1024-Bit-Schlüssel werden gemäß RFC 8301 nicht mehr empfohlen. Bevorzugen Sie Ed25519, sofern sowohl Ihr MTA/Milter als auch Ihr DNS-Anbieter dies unterstützen.
  • Die meisten Fehlermeldungen vom Typ „no signature“ sind auf eine Fehlanpassung des Sockets oder der Berechtigungen zurückzuführen. Wenn Ihr Postfix den smtpd-Dienst in einer chroot-Umgebung ausführt (was bei einigen Debian-/Ubuntu-Paketen üblich ist), legen Sie den OpenDKIM-Socket im Postfix-Spool-Verzeichnis ab und stellen Sie sicher, dass der Benutzer „postfix“ darauf zugreifen kann (z. B. indem Sie „postfix“ zur Gruppe „opendkim“ hinzufügen).
  • Es reicht nicht aus, dass DKIM erfolgreich ist. DMARC erfordert eine Übereinstimmung, d. h., Ihre signierende Domain muss mit dem „From:“-Header übereinstimmen, und die Schlüssel sollten mindestens einmal im Jahr gewechselt werden.

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.

OpenDKIM vs. Rspamd: Was sollten Sie im Jahr 2026 verwenden?

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.

KriterienOpenDKIMRspamd
WartungsstatusDie 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 tutNur DKIM-Signierung/ÜberprüfungDKIM-Signatur sowie umfassende Spam-Filterung
Komplexität der EinrichtungEinfach, auf einen einzigen Zweck ausgerichtetMehr bewegliche Teile im vorderen Bereich
Postfix-IntegrationMilter (Buchse)Milter (Proxy-Socket)
Web-BenutzeroberflächeKeineIntegriertes 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:

  • Wählen Sie OpenDKIM , wenn Sie eine einzelne Domain betreiben und eine möglichst einfache Konfiguration mit DKIM-Signatur und sonst nichts wünschen.
  • Entscheiden Sie sich für Rspamd , wenn Sie mehrere Domains verwalten, Produktions-E-Mails versenden oder auf einer Plattform wie Mailcow oder iRedMail aufbauen.

So oder so – beide Vorgehensweisen werden im Folgenden behandelt. Springen Sie direkt zu der von Ihnen gewählten Vorgehensweise.

Lesetipp: Was ist DKIM?

Voraussetzungen, bevor Sie beginnen

Bevor Sie einen Schlüssel generieren oder eine Konfigurationsdatei bearbeiten, stellen Sie sicher, dass diese vier Voraussetzungen bereits erfüllt sind 

  • Eine funktionierende Postfix-Installation, die bereits E-Mails versendet: DKIM signiert die von Ihrem Server versendeten E-Mails, daher muss der Server zunächst einwandfrei funktionieren. Falls Postfix noch nicht eingerichtet ist, sollten Sie dies nachholen, bevor Sie fortfahren.
  • DNS-Zugriff für Ihre Domain: Ihre A- und MX-Einträge sollten bereits veröffentlicht sein, und Sie müssen in der Lage sein, einen TXT-Eintrag hinzuzufügen, da dort Ihr öffentlicher Schlüssel gespeichert wird.
  • Root- oder sudo-Zugriff auf dem Mailserver: Sie werden Systemkonfigurationsdateien bearbeiten und Dienste neu starten.
  • Ein DNS-Anbieter, der lange TXT-Einträge akzeptiert: Ein 2048-Bit-Schlüssel ist länger als die Begrenzung von 255 Zeichen für eine einzelne TXT-Zeichenkette, daher bitten einige Anbieter Sie, ihn auf zwei durch Anführungszeichen getrennte Zeichenketten aufzuteilen. Vergewissern Sie sich, dass Ihr Anbieter dies unterstützt, bevor Sie den Schlüssel generieren.

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.

So richten Sie Postfix DKIM mit OpenDKIM ein

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. 

Schritt 1: OpenDKIM installieren

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.

Schritt 2: Erstellen Sie Ihr DKIM-Schlüsselpaar

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:

FlagBedeutung
-b 2048Schlüsselgröße in Bit – 2048-Bit-RSA
-d example.comDie Domain, für die Sie unterschreiben
-s selector2026Der 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:

DateiWas es istRegel
selector2026.privateIhr privater SignaturschlüsselGeben Sie es niemals weiter; sorgen Sie dafür, dass es nur von OpenDKIM gelesen werden kann.
selector2026.txtDer öffentliche Schlüssel, für DNS formatiertDas 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.

Schritt 3: OpenDKIM konfigurieren

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:

Syslogja
UMask2
Moduss
Kanonisierungentspannt/entspannt
Buchselocal:/var/spool/postfix/opendkim/opendkim.sock
PidFile/run/opendkim/opendkim.pid
Oversign-KopfzeilenVon
KeyTable/etc/opendkim/key.table
SigningTablerefile:/etc/opendkim/signing.table
ExterneIgnorierliste/etc/opendkim/trusted.hosts
Interne Hosts/etc/opendkim/trusted.hosts

Was die wichtigen Richtlinien bewirken:

RichtlinieWas es steuert
ModiNur signieren. Verwenden Sie „sv“, wenn OpenDKIM auch eingehende E-Mails überprüfen soll.
Canonicalisierung gelockert/gelockertGeringfü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.
BuchseHier wartet OpenDKIM auf Postfix. Dieser Pfad muss mit der Einstellung übereinstimmen, die Sie später in Postfix vornehmen.
OversignHeaders VonSigniert den „From“-Header, sodass ein Angreifer keinen zweiten hinzufügen kann – eine kleine, aber wirksame Maßnahme gegen Spoofing.
KeyTable / SigningTableDie 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:

DateiStelleBeispielzeile
signing.tableOrdnet einen Absender einem Selektor zu*@example.com selector2026._domainkey.example.com
key.tableOrdnet diesen Selektor seinem privaten Schlüssel auf der Festplatte zuselector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
trusted.hostsListet Hosts auf, deren ausgehende E-Mails signiert werden sollten127.0.0.1 / localhost / ::1 / example.com

Schritt 4: OpenDKIM mit Postfix verbinden

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:

RichtlinieZweck
milter_default_action = acceptWenn der Milter ausgefallen ist, fließt die Post weiterhin; ein inaktiver Signierer blockiert Ihre Warteschlange niemals stillschweigend.
milter_protocol = 6Die Version des Milter-Protokolls, die derzeit von OpenDKIM verwendet wird.
smtpd_miltersWendet den Milter auf E-Mails an, die über SMTP empfangen werden (Ihre ausgehenden Sendungen).
non_smtpd_miltersGilt 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

Schritt 5: Veröffentlichen Sie den DKIM-DNS-TXT-Eintrag

Ö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:

FeldWert
Datensatznameselector2026._domainkey.example.com
TypTXT
WertAlles 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.

Schritt 6: Vor dem Absenden überprüfen

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.

Schritt 1: Rspamd installieren

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.

Schritt 2: Erstellen Sie Ihren DKIM-Schlüssel

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:

DateiWas es ist
example.com.selector2026.keyDer private Signaturschlüssel, den Rspamd verwendet. Er muss im Besitz des Benutzers _rspamd bleiben.
example.com.selector2026.pubDen für DNS formatierten öffentlichen Schlüssel veröffentlichen Sie in Schritt 5

Schritt 3: DKIM-Signatur aktivieren

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:

EinstellungWas es steuert
SelektorDer Name des Selektors muss mit dem Dateinamen Ihres Schlüssels und dem DNS-Eintrag übereinstimmen.
PfadWo Rspamd den privaten Schlüssel findet; $domain und $selector werden automatisch ausgefüllt
allow_username_mismatchWird 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.

Schritt 4: Rspamd mit Postfix verbinden

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:

MilterSocket-Zeile in main.cf
OpenDKIMsmtpd_milters = local:opendkim/opendkim.sock
Rspamdsmtpd_milters = inet:localhost:11332

Schritt 5: Den DNS-Eintrag veröffentlichen

Ö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.

Konfiguration von Postfix DKIM für mehrere Domänen

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:

  1. Verwende denselben Selektor für alle Domains, selector2026 überall, damit die Rotation als ein einziger Prozess statt als mehrere Prozesse abläuft. 
  2. Veröffentlichen Sie für jede Domain einen eigenen DNS-Eintrag: Wenn Sie dies bei einer Domain versäumen, wird die E-Mail dieser Domain zwar lokal signiert, die Überprüfung beim Empfänger schlägt jedoch fehl.

So testen und überprüfen Sie Ihre Postfix-DKIM-Konfiguration

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:

Schritt 1: Überprüfen Sie zunächst das E-Mail-Protokoll

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.

Prüfung 2: Überprüfung des Schlüssels anhand der DNS-Einträge (OpenDKIM)

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.

Prüfung 3: Einen echten Test senden

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.

Prüfung 4: Externe Prüfprogramme ausführen

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. 

Prüfung 5: Achten Sie auf die Falle „DKIM-passes-but-DMARC-fails“

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.

Prüfung 6: Alle drei in einem Durchgang prüfen

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. 

Rotation der DKIM-Schlüssel in Postfix

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:

  1. Erzeuge einen neuen Schlüssel mit einem neuen Selektor – selector2027.
  2. Veröffentlichen Sie den neuen öffentlichen Schlüssel als neuen DNS-TXT-Eintrag und lassen Sie den alten Eintrag bestehen.
  3. Passen Sie Ihre Konfiguration an, um mit dem neuen Selektor zu signieren.
  4. Laden Sie den Milter neu und warten Sie, bis sich die DNS-TTL verbreitet hat.
  5. Behalten Sie den alten Datensatz mindestens für die Dauer der vorherigen TTL plus 24–48 Stunden (in der Regel insgesamt 48–72 Stunden) bei, abhängig von Ihrer TTL und dem Volumen der derzeit im Umlauf befindlichen Nachrichten. Nachrichten, die sich bereits im Umlauf befinden und mit dem alten Schlüssel signiert wurden, müssen noch verifiziert werden.
  6. Den alten Selektor außer Betrieb nehmen und dessen DNS-Eintrag löschen.

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.

Häufige DKIM-Fehler bei Postfix und deren Behebung

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. 

FehlerMögliche UrsacheFix
Keine DKIM-Signatur in den HeadernMilter nicht angeschlossen oder Anschluss nicht kompatibelStellen 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 abgelehntDer OpenDKIM-Daemon läuft nichtsystemctl start opendkim; überprüfen Sie, ob die Socket-Datei tatsächlich im Spool-Verzeichnis vorhanden ist
opendkim: Schlüsselabruf fehlgeschlagenFalscher 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 nichtAusrichtungsabweichungDie Signaturdomäne (d=) muss mit der Domäne im „From:“-Header übereinstimmen; es gilt eine lockere Übereinstimmungsregel.
2048-Bit-Schlüssel vom DNS abgelehnt255-Zeichen-TXT-Limit des AnbietersDen öffentlichen Schlüssel auf zwei in Anführungszeichen gesetzte Zeichenfolgen im selben TXT-Eintrag aufteilen

Wann sollte man von der manuellen Postfix-DKIM-Konfiguration abkommen?

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:

  • Sie melden drei oder mehr Domains an.
  • E-Mails werden von verschiedenen Quellen versendet – einem E-Mail-Dienstanbieter (ESP), Transaktions-E-Mails, Ihrer App –, wobei jede Quelle ihre eigenen Schlüssel benötigt.
  • Sie haben eine Frist für die Einhaltung der Vorschriften und können es sich nicht leisten, einen Turnus zu verpassen.
  • Eine einzige Person verfügt über das gesamte DKIM-Wissen, und wenn diese Person das Unternehmen verlässt, geht dieses Wissen verloren.

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:

AufgabeHandbuch (OpenDKIM / Rspamd)Gehostetes DKIM
SchlüsselrotationManuell in jedem Zyklus: erstellen, veröffentlichen, überlappen, aus dem Verkehr ziehenAutomatisch, keine DNS-Änderung pro Zyklus
Mehrere DomainsSeparate Schlüssel, Datensätze und Konfigurationen pro DomainZentral verwaltet
Schlüsselgröße2048 Bit (oder Ed25519)Bis zu 4096 Bit
Verwaltung der AuswahlkriterienManuell erfasstWird bei den wichtigsten ESPs automatisch erkannt
DNS-WartungBei jeder Rotation bearbeitetEin 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

Häufig gestellte Fragen

Was ist Postfix DKIM?

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.

Was ist OpenDKIM?

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.

Was ist Rspamd?

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.

Was ist Postfix?

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.

Sollte ich 2026 OpenDKIM oder Rspamd mit Postfix verwenden?

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.

Wie kann ich überprüfen, ob meine ausgehenden E-Mails mit DKIM signiert sind?

Ü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.

CTA