Postfix mit DKIM und SpamAssassin

Heute habe ich mich daran versucht, DKIM für meinen Mailserver basierend auf Postfix und SpamAssassin einzurichten.

Doch was ist DKIM überhaupt?

DomainKeys Identified Mail (DKIM) is a method for associating a domain name to an email message, thereby allowing a person, role, or organization to claim some responsibility for the message.

Quelle: Wikipedia

Okay, soweit klar. Nicht allzuschwer zu verstehen. Doch wie kommen wir nun an unsere eigenen DKIM-Keys und Records? Ausgehend von einem bereits funktionsfähigen Postfix/SpamAssassin-Setup. Nicht abschreiben, sondern verstehen!

Ich übernehme natürlich keine Garantie, dass die obige Anleitung ohne Probleme funktioniert. Die Anleitung ist nach bestem Wissen und Gewissen zusammengestellt. Kommentieren Sie bei Fragen doch einfach!

Fangen wir mit der Installation von dkim-filter aus den Debian-Paketquellen an:

apt-get install dkim-filter

Eventuelle Fragen einfach beantworten, das machen wir nun noch genauer in zwei Konfigurationsdateien:

/etc/dkim-filter.conf

Syslog yes
UMask 002

Domain euredomain.de
KeyFile /etc/mail/dkim.key
Selector mail

 /etc/default/dkim-filter

SOCKET=“inet:8891@localhost“

Nun ist dkim-filter bereits grundlegend für unser Vorhaben konfiguriert – erstellen wir unseren Key. Hierzu hat das Paket dkim-filter, das wir oben installiert haben, ein kleines, nettes Tool mitgebracht:

dkim-genkey -t -s mail -d euredomain.de

Dies erstellt zwei Files: mail.private und mail.txt – die mail.private kopieren wir direkt nach /etc/mail/dkim.key:

cp mail.private /etc/mail/dkim.key

Nun erstellen wir unseren TXT-Record im DNS – je nach Anbieter wird das anders gemacht, allerdings steht alles, was ihr benötigt in oben erstellter mail.txt.

Gut, nun haben wir einen DKIM-Key. Auf zu Postfix! Wir bringen Postfix bei, DKIM zum signieren zu nutzen:

/etc/postfix/main.cf

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

Nun starten wir DKIM und restarten Postfix:

/etc/init.d/dkim-filter start

/etc/init.d/postfix restart

Keine Fehler? Wunderbar! Weiter zu SpamAssassin!

Um SpamAssassin beizubringen, dass wir DKIM haben wollen, benötigen wir noch ein zusätzliches Paket:

apt-get install libmail-dkim-perl

Nun, auch hier, zur Konfiguration.

/etc/spamassassin/v320.pre:

loadplugin   Mail::SpamAssassin::Plugin::DKIM

/etc/spamassassin/local.cf:

whitelist_from_dkim *@googlemail.com googlemail.com
score USER_IN_DKIM_WHITELIST -10.0
score DKIM_VERIFIED -5.0
score DKIM_POLICY_TESTING 0

Ein beherztes

/etc/init.d/spamassassin restart

sollte auch hier keine Fehler aufwerfen. Sehr gut! Wir sind also an dem Punkt angelangt, an dem wir, zumindest denken wir das, funktionstüchtiges DKIM nutzen. Doch: wie können wir das nun testen?

Wir schreiben einfach eine kurze E-Mail an die Testadresse von port25.com.

Kurz darauf sollten wir eine Antwort bekommen, in der bestenfalls steht: „DKIM check: pass„. Sehr schön, DKIM funktioniert und kann aufgelöst werden.

 

Schreibe einen Kommentar