DKIM mit Postfix und Rspamd einrichten
DomainKeys Identified Mail (DKIM) ist eine E-Mail-Authentifizierungsmethode, die dazu dient, E-Mail-Spoofing zu erkennen. Sie ermöglicht es dem empfangenden Server, die Herkunft einer E-Mail zu überprüfen, indem er sie mit einer digitalen Signatur versieht. Die Überprüfung der Signatur erfolgt anhand des im DNS veröffentlichten öffentlichen Schlüssels des Unterzeichners. Damit lassen sich betrügerische E-Mails erkennen.
Verzeichnis für Schlüssel erstellen
Als erstes erstellen wir im Verzeichnis /var/lib/rspamd ein Verzeichnis, wo wir die DKIM Schlüssel speichern.
mkdir -p /var/lib/rspamd/dkim
chown -R _rspamd:_rspamd /var/lib/rspamd/dkim
chmod 750 /var/lib/rspamd/dkim
DKIM-Schlüssel erzeugen
In diesem Beispiel erstellen wir für unsere Maildomain tuxnet24.net einen DKIM Schlüssel. Wir definieren die Variable $domain mit dem Wert tuxnet24.net.
doamin="tuxnet24.net"
Wir erzeugen ein neues DKIM-Schlüsselpaar mit dem Dienstprogramm rspamadm. Im folgenden Beispiel verwenden wir dkim als DKIM-Selektor. Es wird ein Schlüsselpaar erzeugt, das für alle vom Mailserver verwalteten Domänen verwendet werden kann.
rspamadm dkim_keygen \
-b 2048 \
-s dkim \
-k /var/lib/rspamd/dkim/dkim.${domain}.key \
> /var/lib/rspamd/dkim/dkim.${domain}.pub
Ergebnis:
/var/lib/rspamd/dkim/dkim.tuxnet24.net.key→ privater Schlüssel/var/lib/rspamd/dkim/dkim.tuxnet24.net.pub→ öffentlicher Schlüssel
Private Key absichern:
chown _rspamd:_rspamd /var/lib/rspamd/dkim/dkim.${domain}.key
chmod 600 /var/lib/rspamd/dkim/dkim.${domain}.key
Rspamd konfigurieren
Wir erstellen nun eine neue Datei /etc/rspamd/local.d/dkim_signing.conf, um Rspamd mitzuteilen, wo es nach dem DKIM-Schlüssel und dem Selektornamen suchen soll. Die letzte Zeile aktiviert die DKIM-Signierung für Alias-Absenderadressen.
cat <<CONF | tee /etc/rspamd/local.d/dkim_signing.conf >/dev/null
enabled = true;
try_fallback = false;
allow_username_mismatch = true;
sign_authenticated = true;
sign_local = true;
use_esld = true;
check_pubkey = true;
domain {
# Domain name ${domain} is used as key
${domain} {
# Private key path
path = "/var/lib/rspamd/dkim/dkim.${domain}.key";
# Selector name
selector = "dkim";
}
# here you can add more domains
}
CONF
Rspamd unterstützt auch ARC-Signaturen. Wir verwenden die gleiche Konfigurationsdatei und kopieren diese.
cp /etc/rspamd/local.d/dkim_signing.conf \
/etc/rspamd/local.d/arc.conf
Nun starten wir den Rspamd neu.
systemctl restart rspamd
DNS-Record erstellen
Inhalt der .pub Datei ansehen:
cat /var/lib/rspamd/dkim/dkim.${domain}.pub
Das ergibt etwa:
dkim._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A..."
) ;
Nun gehen wir zu unseren DNS Provider wie z.B. https://www.cloudflare.com/de-de/ und setzten für die Maildomain tuxnet24.net einen DNS TXT Record für den DKIM.
Name:
dkim._domainkey.tuxnet24.net
Wert:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...
⚠ Wichtig:
- Nur den
p=Wert komplett übernehmen - Keine Zeilenumbrüche im DNS
- TTL moderat setzen (z.B.
3600)