OpenDKIM + Postfix auf Ubuntu einrichten

DKIM-Signierung einrichten, um die E-Mail-Zustellbarkeit zu verbessern.

DKIM (DomainKeys Identified Mail) ist eine E-Mail-Authentifizierungsmethode, mit der empfangende Server überprüfen können, ob Nachrichten tatsächlich von Ihrer Domain stammen und auf dem Weg nicht manipuliert wurden. Eine gültige DKIM-Signatur erhöht die Wahrscheinlichkeit erheblich, dass Ihre E-Mails im Posteingang landen — und nicht im Spam — bei Gmail, Yandex, Outlook, Mail.ru und anderen Anbietern.

Diese Anleitung zeigt, wie Sie OpenDKIM mit Postfix auf Ubuntu einrichten — der standardmäßige und zuverlässigste Weg, ausgehende E-Mails von einem VPS oder dedizierten Server zu signieren.

OpenDKIM installieren

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

DKIM-Schlüssel generieren

  1. Verzeichnis für die Schlüssel anlegen:
sudo mkdir -p /etc/opendkim/keys
  1. Schlüsselpaar generieren (ersetzen Sie example.com durch Ihre tatsächliche Domain und mail durch einen beliebigen Selektor — dkim, 2025, selector1 usw.):
sudo opendkim-genkey -D /etc/opendkim/keys/ -d example.com -s mail

Danach finden Sie in /etc/opendkim/keys/ zwei Dateien:

  • mail.txt — der DNS-TXT-Eintrag, den Sie veröffentlichen müssen
  • mail.private — der private Schlüssel (streng geheim halten)
  1. Berechtigungen setzen:
sudo chown opendkim:opendkim /etc/opendkim/keys/*
sudo chmod 600 /etc/opendkim/keys/*

DNS-TXT-Eintrag veröffentlichen

TXT-Eintrag anzeigen:

cat /etc/opendkim/keys/mail.txt

Beispielausgabe:

mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM+aKFwMV4FHLhghuhQs4vEIIIigO0KzRwQojURHI8QV0m/aHt6AqO2JDhXpl54d3uXJj7QWE9653McQZxPQZa6Hu34RY70ap9OZQ664fWeVuyUAZ+VeQ7gGXQBCxPF6nAlnBIsYak+KV/s1HtaUuySVMiwIDAQAB" )

Gehen Sie in das Control Panel Ihres DNS-Anbieters und legen Sie einen neuen TXT-Eintrag an:

  • Name / Host: mail._domainkey
  • Typ: TXT
  • Wert: alles innerhalb der Klammern (ohne Anführungszeichen und Zeilenumbrüche)

Die DNS-Propagierung dauert in der Regel 5–60 Minuten.

OpenDKIM konfigurieren

  1. Haupt-Konfigurationsdatei bearbeiten:
sudo nano /etc/opendkim.conf

Stellen Sie sicher, dass folgende Zeilen vorhanden sind (oder fügen Sie sie hinzu):

AutoRestart             Yes
AutoRestartRate         10/1h
Umask                   002
Syslog                  Yes
SyslogSuccess           Yes
LogWhy                  Yes
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
UserID                  opendkim:opendkim
Socket                  inet:8891@localhost

(Der Port 8891 ist frei wählbar — Sie können ihn ändern, solange er mit der Postfix-Konfiguration übereinstimmt.)

  1. Datei für vertrauenswürdige Hosts anlegen (Hosts, die über OpenDKIM senden dürfen):
sudo nano /etc/opendkim/TrustedHosts

Inhalt:

127.0.0.1
localhost
example.com
*.example.com
  1. KeyTable anlegen (verknüpft Domain/Selektor mit dem privaten Schlüssel):
sudo nano /etc/opendkim/KeyTable

Inhalt:

mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/mail.private
  1. SigningTable anlegen (legt fest, welcher Selektor für welche Absenderadressen verwendet wird):
sudo nano /etc/opendkim/SigningTable

Inhalt:

*@example.com mail._domainkey.example.com

OpenDKIM mit Postfix verbinden

Postfix-Hauptkonfiguration bearbeiten:

sudo nano /etc/postfix/main.cf

Hinzufügen (oder an vorhandene Milter-Zeilen anhängen):

# OpenDKIM integration
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

Starten und testen

  1. Dienste neu starten:
sudo systemctl restart opendkim
sudo systemctl restart postfix
  1. Prüfen, ob beide Dienste laufen:
sudo systemctl status opendkim
sudo systemctl status postfix
  1. Test-E-Mail vom Server senden:
echo "DKIM test message" | mail -s "DKIM Test" your@gmail.com
  1. Empfangene E-Mail öffnen → „Original anzeigen" (in Gmail) und nach folgendem suchen:
Authentication-Results: ... dkim=pass header.d=example.com ...

Wenn dkim=pass erscheint, ist alles korrekt konfiguriert.

Nützliche Hinweise

  • Für mehrere Domains fügen Sie einfach weitere Zeilen nach demselben Muster in KeyTable und SigningTable ein.
  • Richten Sie für beste Zustellbarkeit zusätzlich SPF- und DMARC-Einträge ein.
  • Logs zur Fehlersuche: /var/log/mail.log oder /var/log/syslog (nach opendkim-Einträgen suchen).

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns