Exchange Server and DKIM

Here I had already talked about DKIM in connection with the Sophos UTM written. Here is an article about Exchange and DKIM. Mails can receive a DKIM signature directly on the Exchange server, so an additional AntiSPAM solution that attaches the DKIM signature is not required. To attach DKIM signatures directly to the Exchange server, you can use the free tool "Exchange DKIM Signer" can be used.

To use Exchange DKIM Signer, the package linked above must be transferred to the Exchange server, after it has been unpacked, the application "Configuration.DkimSigner.exe" can be started:

DKIM Signer

After starting, a GUI for the configuration appears, the GUI creates an XML file for the configuration and installs the Exchange Transport Agent, alternatively this can also be done manually. The manual configuration is here described. However, the GUI is used in this article:

Exchange DKIM Signer GUI

For the configuration, the domain that is to be provided with DKIM signatures must first be added on the "Domain Settings" tab:

Domain Settings

In the "Domain details" fields, you must now enter the domain with which mails are to be sent; the selector is a selectable string to identify the DNS record. For example, "dkim1", "dkim2020" or something else can be used here. Common here is "p+YearInWhichTheKeyWasCreated", for example "p2020". For compatibility reasons, "1024" should be selected as the "Key length for generation". The reason for this is that with a 2048-bit key length, the required DNS entry will be longer than 255 characters. Many providers do not allow such long strings to be entered in the DNS (although technically possible). If the provider long DNS Records allows, "2048" can also be selected here:

Domain Settings

After the key has been created and saved, the required DNS entry is displayed:

DKIM DNS Record

The DNS record displayed by Exchange DKIM Signer must now be created as a TXT record in the public DNS of the domain hoster:

DKIM DNS Record

The "Check" function in Exchange DKIM Signer can be used to check whether the DNS record has been created correctly. If DNS Split Brain is used, the TXT record should also be created on the internal DNS servers:

DKIM DNS Record

If the test was successful, the entry for the domain can be saved. If additional domains are used to send emails, these domains must also be created as described above. In this case, you should create additional RSA keys and not use the existing one.

The configuration of Exchange DKIM Signer is now complete, so the required transport agent can now be installed. The Exchange Transport Agent can be installed on the "Information" tab using the "Install" button:

Exchange DKIM Signer GUI

DKIM Signer now loads the required packages:

Exchange DKIM Signer GUI

The transport agent is then installed automatically with the required configuration:

Installation Transport Agent

The installation of the transport agent can be viewed by clicking on "Configure". The agent can also be deactivated or uninstalled here if required:

Installation Transport Agent

It is very easy to test whether DKIM works as expected. Simply send an e-mail to the following address:

DKIM test address

The e-mail is then automatically answered and contains the test results:

DKIM test result

For DKIM to work correctly, the mail must not be modified after the DKIM signature has been applied. So if the mail is forwarded from the Exchange server to an AntiSpam gateway and only then sent to the recipient, this could lead to problems depending on the configuration. However, this is not usually the case with smarthosts or relays that simply forward the mails.

35 thoughts on “Exchange Server und DKIM”

  1. Hallo,

    wie ist es, Stand 2024, empfehlen die User, die das Tool nutzen immer noch deren Einsatz?
    Ich möchte es bei mir endlich mal einsetzen, es wurde mir aber bereits mehrfach abgeraten, es würde zu Problemen führen, nicht stabil laufen …. Auf konkrete Nachfragen was den genau, ist aber wenig gekommen.

    Was gibt es den noch an Tools, ich konnte nichts finden. die Empfehlung ist in der Regel Dienstleister einzusetzen, über die der Versand abgewickelt wird, mit Verschlüsselung oder doch 365 zu nutzen.

    365 stehe ich nicht so offen gegenüber, ich habe Vorbehalte. Ein Punkt ist auch, dass es einfach nur teurer wird.

    Die Firewall würde ich auch gerne rauslassen, sie hat nach meiner Meinung eine andere Aufgabe, nicht der Versand von E-Mails. Dann würde ich lieber ein Gateway zum Weiterversand in eine DMZ stellen.

    Reply
    • Das Tool läuft bei uns auf Ex2019 problemlos und Stabil. So Stabil, dass ich es schon fast vergessen habe.

      Leider fehlt auch mir das Wissen um das Tool weiter zu entwickeln, bzw. zu Unterhalten. Eine Idee, was wir machen könnten um einen neuen Maintainer zu finden?

      Reply
    • Ich habe gerade versucht es auf Exchange 2016 (15.01.2507.035) zu installieren. Der Installer sagt bei v. 3.4.0 und 3.3.4:

      Your Microsoft Exchange version isn’t supported by the DKIM agent:
      15.1.2507.17

      Danach wird es trotzdem installiert. In „C:\Program Files\Exchange DkimSigner“ ist dann allerdings nur das Setupprogramm, mit dem ich es nochmal installlieren könnte. Also irgendwas scheint da nicht zu funktionieren, sieht so aus als würde es zumindest für Exchange 2016 nicht mehr supported.

      Reply
    • Hallo,

      ich habe den DKIM-Signer vergangenes Wochenende bei allen meinen Kunden mit on-premise Exchange Servern installiert (3 x Exchange 2016 (fully patched) und 5 x Exchange Server 2019 (fully patched)).

      Alles lief sofort auf Anhieb. Konnte die hier beschriebenen Probleme in keinem einzigen Fall nachvollziehen.

      Ich habe die aktuellste Version (3.4.0) verwendet und VORHER darauf geachtet, dass auch die entsprechende Version von dotNET-Framework installiert ist. Ein entsprechender Hinweis ist hier in der Anleitung vorhanden.

      Reply
  2. Tja, was soll ich sagen.
    Wenn der Signer nicht mehr weiter entwickelt wird, dann ist das so.
    Das Tool macht aber bei mir seine Arbeit und die macht es zuverlässig.
    Ich habe Windows Server 2016 Datacenter und Exchange 2016 Enterprise,
    laufen auf der selben Maschine.
    Ja ja, ich weiß, soll man nicht machen, aber da ich der einzige bin, der das Ding verwaltet, ist mir das egal.
    Ich wüsste nicht, was da noch zu korrigieren wäre. Zumindest Exchange 2016 bekommt wohl keine CUs mehr,
    nur noch normale Sicherheitsupdates, damit dürfte sich also am Unterbau nicht mehr groß was verändern.
    Wie das dann mit 2019 sein wird, kann ich nicht sagen, wäre dann schön, wenn es weiter gehen würde.
    Alternative Tools gibt es nämlich nur als Kaufvariante zu Schweinepreisen.
    Dafür, dass ich den Exchange nur privat betreibe, ist das dann schon ziemlich happig.

    Reply
    • Bei uns läuft das Tool nach wie vor ohne Probleme auf Exchange 2019 mit dem aktuellen CU und SU.
      Es wäre wirklich toll, wenn es mit dem Tool weiter gehen würde. Leider fehlt mir das Wissen um da selber helfen zu können.

      Reply
  3. Leider wurde die Entwicklung eingestellt.
    Es wird dringend ein neuer maintainer gesucht!
    Bitte um Bewerbungen per github Aufruf.

    Reply
  4. Danke für den Beitrag! Bei mir hat die Einrichtung unter MS Exchange 2016 mit aktueller CU einwandfrei funktioniert.

    Reply
    • MS Exchange 2016 CU23, Update von April 2024.
      Leider funktioniert die Installation nicht: Your Microsoft Exchange version isnt supported by the DKIM agent: 15.1.2507.18

      Keine Chance, weder Version 3.4 oder früheren. Auch eine manuelle Installation führte zu keinem Erfolg. Vielleicht weiß jemand eine Hilfe dazu

      Reply
  5. Hallo,

    sehr detailierter und guter Artikel.
    Das funktionierte bei mir per ‚check-auth@verifier.port25.com‘, aber sollte dann nicht die Email als signiert markiert werden im Outlook?
    Ich habe mir dann nämlich über meine web.de-Adresse zum Test nochmal eine Mail geschickt. Die kam aber als nicht signiert an. Oder verstehe ich da was vollkommen falsch.

    Reply
  6. Hallo.
    Ich bekomme den DKIM Signer auf einem Exchange 2019 nicht eingebunden. Sobald er aktiviert wird, hängt sich der Transportservice auf und es wird versucht neuzustarten. Ich hab nach dem Start nur zwei Fehler im Ereignisprotokoll:

    MSExchangeCommon 4999
    Watson report about to be sent for process id: 11584, with parameters: E12IIS, c-RTL-AMD64, 15.02.1118.012, edgetransport, mscorlib, S.ThrowHelper.ThrowArgumentException, S.Reflection.TargetInvocationException, a41f-dumptidset, 04.08.4110.000.
    ErrorReportingEnabled: False

    MS Exchange Transportservice 1016
    The worker process crashes continuously on startup: D:\EXCH\Bin\edgetransport.exe. The service will be stopped.

    Ich habe zwei Domains drin. Ist das die Ursache?

    Reply
  7. na toll gerade gemerkt das der dkimsigner mir meinen exchange zerschossen hat :( das macht arbeit den wieder herzustellen

    Reply
    • Wie meinst zu zerschossen? Habe auch ein „Problem“. Bei mir werden nun 2 Signaturen gesendet. Auf den Testtools sehe ich, dass meine Mails mit 2 DKIM Signiert werden, auf dem DNS habe ich aber natürlich nur einen. Im tool auch. Nun weiss ich nicht, wie ich den wieder weg kriege :) Was das jemand?

      Reply
  8. Hallo,

    ich habe vermutlich das selbe problem wie Herr Kümmel. Mein SPF-Check verläuft mit „Softfail“ was ich auf den smartrelay rückführe. Gibt es dazu eine Lösung?

    Grüße
    Michael

    Reply
    • okay eigene Antwort ;)
      Man muss den smartrelay mit ins SPF aufnehmen. Ist zwar so halb richtig, da das eigentlich den relay ja erlaubt meine Mails anzupassen, aber naja

      Reply
  9. Hallo Franky ich hab das alles heruntergeladen was im GITHUB ist. Leider musste ich auch der jüngsten Ereignisse Die neuste SU installieren. Wenn ich jetzt die install.ps1 ausführe dann kommt ein Fehler der mir sagt das die Version nicht supported wird.
    Kannst Du mir da eine kleine Hilfestellung geben.
    SPF, Dmarc sind vorhanden und werden auch richtig geprüft. DKIM ist leider nach der Test E-Mail nicht korrekt.
    Der DKIM Schlüssel ist über die Securepoint UTM erstellt, nur wird das DKIM nicht in den Header eingefügt.

    Reply
  10. Hallo Frank,

    Das werde meiner Meinung nach die hinwies

    „Damit DKIM korrekt funktioniert, darf die Mail nachdem die DKIM Signatur angewendet wurde, nicht mehr verändert werden. Wenn die Mail also vom Exchange Server zu einem AntiSpam Gateway geleitet wird und erst dann zum Empfänger geschickt wird, könnte es hier je nach Konfiguration zu Problemen kommen. Bei Smarthosts oder Relays welche die Mails einfach nur durchleiten ist dies aber in der Regel nicht der Fall.“

    Gleich am Anfang stehen. Ich habe Sophos XG in Einsatz und habe zuerst alles fertig installiert vor ich das gesehen habe.

    Reply
  11. Danke für die Anleitung.
    Bei mir hat trotz Installation der Exchange Server 2010 zuerst die DKIM Information nicht in den Header der Email eingefügt.
    Auch nicht nach einem Neustart des Transportdientes im DKIM Signer.
    Erst nach einem Neustart von den Diensten „Microsoft Exchange Mailübergabe“ und „Microsoft Exchange Transport“ in der Dienstliste hat es geklappt.

    Reply
  12. Hallo,
    scheinbar wurde das Paket weiterentwickelt und deshalb ist schon der Download seltsam.
    Zunächst gilt es alle Dateien als ZIP-Datei herunterzuladen und auszupacken.
    Es gibt dann PS-Dateien zum Installieren?

    Danach stimmt die Doku hier leider nicht mehr so ganz, hier ist. z.B.
    dkim-exchange-master\Src\Configuration.DkimSigner\bin\Release\Configuration.DkimSigner.exe zu finden.

    Da wir hinter einem Mailrelay sitzen, brauche ich es nicht auf dem Exchange zu installieren, muß aber trotzdem die Schlüssel generieren und dort einbauen.

    Gibt es einen Modus, um nur die Schlüssel zu generieren, also ohne Installation? Oder gibts ein anderes Tool hierfür?

    Grüsse
    Frank

    Reply
  13. Moin Franky,

    wie läuft so ein DMARC / DKIM Sign hinter einem Smart-Relay ab? Wir haben unseren Exchange in einem RZ-Verbund laufen, und nutzen den Relay Host unseres RZ Providers.

    Thx und gute Anleitung!

    Reply
  14. Hallo Frank,

    Danke! DKIM läuft jetzt auf der UTM und Tests waren erfolgreich :)
    Dann beschäftige ich mich jetzt als nächstes Mal mit DMARC.

    VG!
    Gero

    Reply
  15. Hallo Zusammen

    Danke Frank für diesen Beitrag. Wie ist das bei einem Exchange mit MultiTenants? Ist es zwingend notwendig, für alle Domains DKIM einzurichten oder kann vorerst für den Test nur für eine Domain DKIM eingerichtet werden?
    Vielen Dank

    Gruss,
    Stefan

    Reply
  16. Hallo,

    super Beitrag. Danke dafür!
    Eine Frage dazu. Wenn eine UTM und ein Exchange im Einsatz ist dann DKIM eher über UTM oder über den Exchange?

    VG!
    Gero

    Reply
    • Hi Gero,

      ich denke das es dann besser wäre DKIM über die UTM zu machen weil sie als außenpunkt zum Internet steht.

      LG

      Aleksandar

      Reply
      • Hi Aleksandar,

        OK. Das wäre ein Argument. Ich warte jetzt Mal ab ob hier noch andere Meinungen dazu kommen.
        Wenn nicht dann nehme ich die UTM :)

        Danke auf jeden Fall für deine Antwort!

        VG!
        Gero

        Reply
        • Hallo Gero,
          wenn du eine Sophos UTM hast, dann solltest du DKIM auf der UTM implementieren (wie Aleksandar ganz richtig geschrieben hat).
          Gruß,
          Frank

Leave a Comment