DKIM with Exchange

Hallo zusammen,

Für einen Vortrag, habe ich mich mal wieder mit Domain Key Identified Mail (DKIM) beschäftigt. Von Haus aus kann Microsoft Exchange Server keine Mails mit DKIM signieren. Deshalb habe ich mir mal den DKIM Signer angeschaut.

Exchange DKIM Signer

https://github.com/Pro/dkim-exchange/blob/master/README.md

 

Online Install

https://github.com/Pro/dkim-exchange/releases/latest

Nachdem man das Zip vom Online install heruntergeladen und entpackt hat, startet man auf dem Exchange Server das Configuration.DkimSigner.exe

Natürlich gibt es noch keine Settings, deshalb wird der folgende Dialog angezeigt

Auf der ersten Registerkarte sieht man welche Exchange Version installiert ist und ob der Exchange DKIM Signer installiert ist

In der Registerkarte "DKIM Settings" können weitere Felder zum Signieren hinzugefügt werden. Ich habe das mal so belassen.

In den Domainsettings habe ich die Domäne "serveralive.ch" und den Selector "prem" definiert. Anschliessend habe ich auf Generate new Key gedrückt.

Um die Einstellungen zu speichern muss man unten auf "Save domain" klicken.

Nun kann der Transport Agent mit diesen Settings installiert werden. Klicken Sie dazu auf "Install"

Die benötigten Files werden aus dem Internet heruntergeladen

und anschliessend installiert

Klickt man auf "Configure"

sieht man den neuen Transport Agent und kann diesen auch dektivieren oder entfernen

Nun muss natürlich das Zertifikat auch noch im DNS veröffentlicht werden. Hier noch ein paar Hinweise dazu.

Am besten ihr öffnet das Public Zertifikat im Notepad

Im der DNS Zone muss ein host mit <Selector>._domainkey erstellt werden. Dazu wird ein TXT Record angelegt in dem man die Version, den Verschlüsselungsalgorithmus und den Public Key aus dem Notepad in mehreren Zeilen anlegt.

In diesem Beispiel habe ich das auf dem BIND DNS Server angelegt.

Ein anschliessendes Mail ist dann DKIM Signiert.

v=Version
a=Vrschlüsselungsalgorithmus
d=Domain
s=Selector
t=Signatur Timestamp
h=Die Felder, welche Signiert und verschlüsselt sind.
bh=Der Hash der signierten Header Felder
b=Die Base64 Signatur der signierten Header Felder

Grüsse
Andres Bohren