Projekt

Problem DKIM

Heute kam es zu einer interessanten Situation, als einer unserer Mitarbeiter eine externe Firma nicht kontaktieren konnte. Er teilte mir mit, dass Mails von einer Domain, nehmen wir an, es ist domain.com, ihn nicht erreichen, obwohl seine Nachrichten ihn erreichten, die Gegenseite aber keine Rückmeldung mit Angabe des Grundes für die Ablehnung erhalten hat. Er bat mich, dieses Problem zu überprüfen. Ich werde kurz skizzieren, wie ich dabei vorgegangen bin und was die Ursache dafür war.

Nachrichten Diagnostik – Exim

Da wir exim als MTA verwenden, werden hier Befehle für dieses System aufgeführt, aber derselbe Prozess kann leicht auch in postfix verwendet werden.
Wenn Nachrichten nicht an den Absender zurückgeschickt werden , bedeutet dies, dass sie irgendwo hängen geblieben sind, ein temporärer Fehler aufgetreten ist und einer der Server erneut versuchen wird, sie zuzustellen. Dies ist eine Standard-Aktion und es gibt nichts Ungewöhnliches hier Leute, die unseren Artikel gelesen haben , wie Mail funktioniert, werden es wissen. Und die wichtige Information ist, dass die Nachrichten von domain.com gesendet wurden.

Da die Nachrichten irgendwo feststecken, werden wir unsere Warteschlange der zuzustellenden Nachrichten überprüfen, um zu sehen, ob sie bei uns feststecken oder es gar nicht erst zu uns geschafft haben:

Das heißt, die Nachricht befindet sich seit 66 Minuten in unserer Warteschlange und kann nicht zugestellt werden. Das mag ein wenig verwundern, dass die Nachricht auf unserem Server liegt und den Adressaten noch nicht erreicht hat, aber dazu später mehr. Der nächste Test besteht darin, die Protokolle mit dem nützlichen Befehl exigrep zu überprüfen, der anhand der angegebenen Daten, z. B. einer Domain, nach Meldungen sucht und alle Informationen darüber anzeigt, was damit passiert ist. Die Verwendung eines einfachen grep würde in dieser Situation dazu führen, dass wir nicht alle Informationen haben.

Wir haben also den Grund, die Nachricht wird nicht zugestellt, weil der DKIM-Eintrag in der DNS-Zone nicht gefunden werden kann. Die Nachricht selbst ist signiert und sollte geprüft werden, ob sie von einer echten Quelle stammt, also prüfen wir sicherheitshalber, ob ein solcher Eintrag existiert, denn es könnte ein Problem mit unserem lokalen DNS-Server sein. Wir werden einen öffentlichen DNS-Server von Google zur Überprüfung verwenden:

Wir haben also den Grund, der txt-Eintrag für die Domain zendesk1._domainkey.domain.com existiert nicht und dort wird unser Server nach dem DKIM-Schlüssel suchen, mit dem er die Signatur prüfen kann. Zunächst: Warum zendesk1._domainkey.domain.com? Nun, früher im Protokoll hatten wir DKIM-Daten angegeben: „d=domain.com s=zendesk1 c=relaxed/relaxed a=rsa-sha256 t=1431354869″ wie Sie sehen können, ist der Eintrag s= tatsächlich zendesk1 und s steht für selector. Er sagt uns, unter welcher Domain der DKIM-Eintrag zu suchen ist, in diesem Fall zendesk1._domainkey.domain.com, nach dem Muster: Wert s._domainkey.wert d, wobei d die Domain ist. Wenn dort kein txt-Eintrag vorhanden ist, bedeutet das, dass es ein temporäres Problem mit dem DNS-Server gibt oder jemand hat ihn dort nicht eingetragen, wie es bei dieser Domain der Fall war.
Die dig-Abfrage selbst lieferte eine weitere Information, und zwar, dass die DNS-Server bei Cloudflare verwaltet werden. Dies ist ein Unternehmen, mit dem wir zufällig zusammengearbeitet haben, und wir werden sicherlich mehr darüber schreiben. Cloudflare fungiert als Proxy für den Webserver, aber dafür muss man auch seinen eigenen DNS-Server aufgeben, was bedeutet das? Nun, dieser jemand hat einfach den DKIM-Schlüssel nicht in die DNS-Zone eingetragen, so dass unser Server nicht prüfen konnte, ob die Nachricht ordnungsgemäß signiert ist, und mit der Zustellung gewartet hat, bis jemand einen DNS-Eintrag hinzufügt oder der DNS-Server anfängt zu antworten, was aber nicht vor 6 Stunden ab dem Zeitpunkt des Eintreffens der Nachricht auf unserem Server geschah, und sie wurde automatisch an den Absender als nicht zugestellt aufgrund eines DKIM-Fehlers zurückgeschickt. Ich habe natürlich die andere Seite über das Problem informiert und wir warten darauf, dass sie das Problem lösen.
Ein gutes Tool, um Ihre E-Mail-Konfiguration zu überprüfen, ist die Website https://www.mail-tester.com/. Senden Sie einfach eine E-Mail an die angegebene Adresse und klicken Sie auf die Schaltfläche und Sie erhalten einen vollständigen Bericht. E-Mails, die von unseren Domains gesendet werden, erhalten 10/10 Punkte.

Bonus – Was ist ein DKIM-Selektor?

Ein Selektor ist nichts anderes als die Information, mit welchem DKIM-Schlüssel die Nachricht signiert wurde und wo er zu suchen ist. Es wurde eingeführt, um Administratoren die Möglichkeit zu geben, mehrere Schlüssel für eine einzelne Domäne einzugeben, was es einfach macht, alte oder kompromittierte Schlüssel zu widerrufen oder einen Schlüssel nicht im Auge behalten zu müssen, weil er verloren geht, Sie können den Selektor schnell ändern und mit dem neuen Schlüssel signieren, oder ihn gar nicht ändern, sondern nur mit dem neuen Schlüssel signieren, dies bedeutet jedoch, dass Nachrichten, die während der Änderung gesendet werden, wegen des falschen Schlüssels zurückgegeben werden können.

Tags

Bitte beachten Sie, dass Sie durch die Nutzung der Website, ohne Ihre Browsereinstellungen zu ändern, der Datenschutzerklärung und der Speicherung von Cookies zustimmen, die ein effizientes Funktionieren unserer Website ermöglichen.