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
- Verzeichnis für die Schlüssel anlegen:
sudo mkdir -p /etc/opendkim/keys
- Schlüsselpaar generieren (ersetzen Sie
example.comdurch Ihre tatsächliche Domain undmaildurch einen beliebigen Selektor —dkim,2025,selector1usw.):
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üssenmail.private— der private Schlüssel (streng geheim halten)
- 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
- 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.)
- 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
- 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
- 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
Starten und testen
- Dienste neu starten:
sudo systemctl restart opendkim
sudo systemctl restart postfix
- Prüfen, ob beide Dienste laufen:
sudo systemctl status opendkim
sudo systemctl status postfix
- Test-E-Mail vom Server senden:
echo "DKIM test message" | mail -s "DKIM Test" your@gmail.com
- 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.logoder/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!