|
DKIM erlaubt eine Authentifizierung der Absenderdomain, so dass damit ein Lösung für das leidige Problem Mail von Dial-In Anschlüssen gelöst werden kann. Aktuell macht taunusstein.net Versuche mit DKIM, wobei die Signatur noch nicht als Indiz für den Absender der Mail verwendet werden sollte. DKIM als Lösung für Mail von Dialin-Anschlüssen ?
Der Ansatz besteht darin, dass jeder taunusstein.net Mail Benutzer einen RSA Schlüssel verwendet, um seine Mails zu signieren. Dabei dient als DKIM Selector der Mailname ohne Domain als Selector. Unter diesem Selector wird dann der public-Key des Benutzers im DNS für taunusstein.net hinterlegt. Verschickt der Benutzer Spam, Malware etc., wird der public Key wieder aus dem DNS entfernt. Wir hoffen, dass auch andere Mailprovider dann zumindest DKIM signierte Mails auch von Dialin Anschlüssen wieder annehmen, doch dazu muss sich DKIM zunächst auf breiter Ebene durchsetzen und dieses Verfahren auch von den größeren Mailprovidern so umgesetzt werden.
DKIM (DomainKeys Identified Mail) is ein neuer Versuch, den Spamfluten Einhalt zu gebieten. Das Prinzip beruht darauf, im DNS Public-Keys der legitimen Server zu veröffentlichen und die Mails mit dem private Key zu signieren. In diesem Beitrag wird gezeigt, wie das bei [http://www.taunusstein.net taunusstein.net] implementiert wurde.
Praktische Anwendung Versuche laufen auf taunusstein.net mit Exim 4.69. Es wurde folgende Betriebsweise implementiert.
- Abgehende E-Mails werden mit DKIM signiert
- Ankommende E-Mails werden via Spamassassin auf DKIM Signatur geprüft. Korrekte Signatur gibt für das Spamrating ein -0.1
- DKIM Signaturen sind nicht zwingend
RSA Key Zunächst wird ein RSA Key gebraucht:
#!/bin/sh
KEYLEN=1024 dkim_selector=tsst2008 dkim_domain=mydomain.de
openssl genrsa -out /etc/exim4/${dkim_selector}.${dkim_domain}.private.pem ${KEYLEN> openssl rsa -in rsa.private -out /etc/exim4/${dkim_selector}.${dkim_domain}.public.pem \ -pubout -outform PEM
Ältere DNS Implementierungen haben Probleme mit UDP Paketen, die länger als 512 Bytes sind, daher können Probleme mit längeren Keys auftreten, weil ein BASE64 codierter Key dann nicht mehr in ein DNS-UDP Paket passt.
Exim4 Konfiguration Exim 4.69 mit DKIM Support compiliert und installiert. Ältere Exim Versionen unterstützen ohne Patches kein DKIM.
Im Exim Source-Tree gibt es das File ''doc/experimental-spec.txt'', dort wird genau beschrieben, wie der DKIM Support in Exim 4.69 aktiviert wird. Vorher muss unbedingt libdkim-1.0.15-tk.tar.gz compiliert werden. Der Pfad ist dabei egal, dieser muss nur beim Compilieren von Exim mit übergeben werden.
Debian Exim Config (split config) wie folgt geändert:
### transport/30_exim4-config_remote_smtp
################################# # This transport is used for delivering messages over SMTP connections. remote_smtp: debug_print = "T: remote_smtp for $local_part@$domain" driver = smtp .ifdef OUTGOING_INTERFACE interface = OUTGOING_INTERFACE .endif dkim_domain = $sender_address_domain dkim_selector = tsst2008 dkim_private_key = /etc/exim4/${dkim_selector}.${dkim_domain}.private.pem # to disable TLS on outgoing connections, uncomment this # hosts_avoid_tls = *
Das Debian Skript update-exim4.config funktioniert damit immer noch und wird auch genutzt.
DNS Konfiguration Erstellung eines passenden DNS Eintrags für taunusstein.net und die anderen Domains. Für taunusstein.net sieht das nun so aus:
<pre>tsst2008._domainkey IN TXT "k=rsa; t=y;p=MIG...QAB" _ssp._domainkey IN TXT "t=y; dkim=unknown"</pre>
Dabei bedeuten:
- tsst2008 ist ein willkürlich gewählter Selector, man könnte auch genauso gut blahfasel123 nehmen
- _ssp ist die Senderpolicy für DKIM, wobei hier ''dkim=unknown'' bedeutet: "Mail wird signiert, oder auch nicht" _domainkey ist per RFC spezifiziert
- k=rsa Signaturverfahren
- t=y wobei y für Test steht
- p=... ist der BASE64 codierte Public-Key
Im Spamassassin wird in der local.cf einfach nur eingetragen ''loadplugin Mail::SpamAssassin::Plugin::DKIM'', jedoch muss das Paket ''libmail-dkim-perl'' installiert sein.
Links zu DKIM DKIM Homepage
RFC-4871 DKIM RFC
draft-allman-dkim-base-01
DKIM mit Sendmail , aber auch interessante Anleitung für DNS
|