DKIM für Exim4 und Smarthosts?
DKIM für Exim4 und Smarthosts?
Ich hoffe, das Thema ist nicht allzu trivial, aber ich suche ein Tutorial, wie ich meinen ausgehenden E-Mails einen DKIM-Header verpassen kann.
Bis jetzt war ich glücklich ohne DKIM. Kürzlich wurden meine Mails wegen Spam-Verdacht nicht mehr an gmail.com-Adressen zugestellt. Ich bat meinen Provider, einen TXT-Record in meiner DNS-Konfiguration anzulegen, dann war alles gut. Heute wurden meine Mails von gmail.com wieder als Spam behandelt
Also will ich es mal mit DKIM-Headern in meinen Mails versuchen.
Ich habe jetzt opendkim installiert und einen Schlüssel erzeugt. Aber wie geht es weiter? Die Tutorials, die ich bis jetzt gefunden habe, sind entweder ziemlich alt (wer weiß, was sich seitdem alles geändert hat) oder besprechen zu viele Möglichkeiten. Oft wird ein Link zu https://www.debian-administration.org genannt, diese Seite gibt es aber nicht mehr.
Bei mir läuft Debian Buster mit Exim4 und Dovecot sowie zwei Domains, für die Smarthosts installiert sind und die ich beide als Absenderadresse benutzen möchte.
Wo finde ich eine Anleitung, wie ich DKIM_Header in ausgehende E-Mails einfügen kann?
Bis jetzt war ich glücklich ohne DKIM. Kürzlich wurden meine Mails wegen Spam-Verdacht nicht mehr an gmail.com-Adressen zugestellt. Ich bat meinen Provider, einen TXT-Record in meiner DNS-Konfiguration anzulegen, dann war alles gut. Heute wurden meine Mails von gmail.com wieder als Spam behandelt
Also will ich es mal mit DKIM-Headern in meinen Mails versuchen.
Ich habe jetzt opendkim installiert und einen Schlüssel erzeugt. Aber wie geht es weiter? Die Tutorials, die ich bis jetzt gefunden habe, sind entweder ziemlich alt (wer weiß, was sich seitdem alles geändert hat) oder besprechen zu viele Möglichkeiten. Oft wird ein Link zu https://www.debian-administration.org genannt, diese Seite gibt es aber nicht mehr.
Bei mir läuft Debian Buster mit Exim4 und Dovecot sowie zwei Domains, für die Smarthosts installiert sind und die ich beide als Absenderadresse benutzen möchte.
Wo finde ich eine Anleitung, wie ich DKIM_Header in ausgehende E-Mails einfügen kann?
Re: DKIM für Exim4 und Smarthosts?
Ich kann dir zwar kein Tutorial liefern, aber kurz erklären wie ich mein Setup aussieht.Plenz hat geschrieben:22.06.2022 18:52:49Ich hoffe, das Thema ist nicht allzu trivial, aber ich suche ein Tutorial, wie ich meinen ausgehenden E-Mails einen DKIM-Header verpassen kann.
Zuerst habe ich in meiner exim4.conf folgende Einträge ergänzt:
Code: Alles auswählen
CONFIG_DKIM_SELECTOR_NAME=juni2022
DKIM_CHECK_SELECTOR=${lookup dnsdb{txt=CONFIG_DKIM_SELECTOR_NAME._domainkey.${sender_address_domain}} \
{/etc/exim4/dkim/${sender_address_domain}_CONFIG_DKIM_SELECTOR_NAME.priv} {0} }
DKIM_CHECK_DMARC=${lookup dnsdb{txt=_dmarc.${sender_address_domain}} {DKIM_CHECK_SELECTOR} {0} }
* CONFIG_DKIM_SELECTOR_NAME = juni2022 => Das ist der Name meines DKIM Selektors in allen Domains muss dieser gleich sein
* DKIM_CHECK_SELECTOR => Ist ein Makro welches in deiner Domain prüft ob der der DKIM Selector im DNS gefunden wird, wenn ja dann gibt dieses Macro "/etc/exim4/dkim/$DOMAIN_$DKIM_SELECTOR.priv" zurück. Ich lege meine privaten DKIM Schlüssel alle in /etc/exim4/dkim/ ab und zwar immer als Dateiname: absenderdomain._juni2022.priv.
* DKIM_CHECK_DMARC => Ist auch ein Makro, welches die Existenz des DMARC Eintrags für die Absender-Domain prüft, falls kein DMARC Eintrag in der Domain gefunden wird und der DKIM Selektor nicht gefunden wird, dann erfolgt keine DKIM Signatur der Emails.
Im SMTP-Transport habe ich folgendes ergänzt und verwende die Variable CONFIG_DKIM_SELECTOR_NAME und den zweiten Marko um den privaten Schlüssel für die Signatur zu finden.
Code: Alles auswählen
dkim_domain = ${sender_address_domain}
dkim_selector = CONFIG_DKIM_SELECTOR_NAME
dkim_private_key = DKIM_CHECK_DMARC
dkim_strict = 1
Re: DKIM für Exim4 und Smarthosts?
Vielen Dank, aber ich verstehe leider nur Bahnhof.
Wieso muss ein Makro bei einer E-Mail, die von meinem Server aus abgeschickt wird, irgend etwas auf meinem Server bzw. auf dem für meine Domains zuständigen DNS prüfen?
Wieso muss ein Makro bei einer E-Mail, die von meinem Server aus abgeschickt wird, irgend etwas auf meinem Server bzw. auf dem für meine Domains zuständigen DNS prüfen?
Re: DKIM für Exim4 und Smarthosts?
Dann lass mich dir helfen, das ganze zu verstehen. Benutzt du bei deinem Exim Setup die Debian Basis mit update-exim4.conf oder hast du eine eigene Exim-Konfiguration am Start?
Muss nicht! Das Makro ist meine Lösung, damit ich sicher stelle, dass ausschließlich E-Mails signiert werden, wenn die Überprüfung der Signatur durch den Empfänger-Email-Server auch möglich ist.Plenz hat geschrieben:23.06.2022 00:31:39Wieso muss ein Makro bei einer E-Mail, die von meinem Server aus abgeschickt wird, irgend etwas auf meinem Server bzw. auf dem für meine Domains zuständigen DNS prüfen?
Re: DKIM für Exim4 und Smarthosts?
Herzlichen Dank, ich kann wirklich jede Menge Hilfe gebrauchen. Ich bin kein IT-ler und verstehe nur ganz grob, was der Exim überhaupt macht, und ein Buch "Exim für Dummies" habe ich leider noch nicht gefunden.bluestar hat geschrieben:25.06.2022 07:55:05Dann lass mich dir helfen, das ganze zu verstehen. Benutzt du bei deinem Exim Setup die Debian Basis mit update-exim4.conf oder hast du eine eigene Exim-Konfiguration am Start?
Ich benutze die Date exim4.conf.template mit diversen eigenen Modifikationen, die ich mir aus verschiedenen Quellen zusammengesucht habe. Hauptgrund dafür ist, dass ich großen Wert auf einen eigenen Spamfilter lege, den ich in Perl programmiert habe und der von Spamassassin eingebunden wird.
WOW! Das heißt, es findet eine Kommunikation mit dem Empfänger-Server statt? Hätte nie gedacht, dass das möglich ist.bluestar hat geschrieben:25.06.2022 07:55:05Muss nicht! Das Makro ist meine Lösung, damit ich sicher stelle, dass ausschließlich E-Mails signiert werden, wenn die Überprüfung der Signatur durch den Empfänger-Email-Server auch möglich ist.Plenz hat geschrieben:23.06.2022 00:31:39Wieso muss ein Makro bei einer E-Mail, die von meinem Server aus abgeschickt wird, irgend etwas auf meinem Server bzw. auf dem für meine Domains zuständigen DNS prüfen?
Und warum überhaupt? Warum nicht jede E-Mail signieren, egal ob der Empfänger-Server etwas damit anfangen kann oder nicht?
Re: DKIM für Exim4 und Smarthosts?
Nein das hat du nicht ganz verstanden. Es findet keine Kommunikation mit dem Empfänger-Server statt.Plenz hat geschrieben:23.06.2022 00:31:39WOW! Das heißt, es findet eine Kommunikation mit dem Empfänger-Server statt? Hätte nie gedacht, dass das möglich ist.
Grundsätzlich ja, jede E-Mail signieren das ist absolut korrekt und auch ganz egal ob der Empfänger die Signatur prüft oder nicht.Plenz hat geschrieben:23.06.2022 00:31:39Warum nicht jede E-Mail signieren, egal ob der Empfänger-Server etwas damit anfangen kann oder nicht?
Der Prozess einer DKIM Signatur: Für eine erfolgreiche Signatur sind folgende Dinge relevant:
1) Du hast beide Schlüsselpaare (privat und öffentlich) erzeugt.
2) Du hast die beiden relevanten Informationen in der DNS-Zone veröffentlicht
2.1) Der öffentliche Teil deines DKIM Schlüssels muss mit seinem Namen in der DNS-Zone hinterlegt werden.
2.2) Du veröffentlichst deine DMARC-Richtlinie und erklärst darin maschinenlesbar, dass du 100% deiner ausgehenden E-Mails signierst.
3) Dein Exim benutzt den privaten Schlüssel aus (1) und signiert deine ausgehende E-Mail damit.
4) Der Empfänger-Server holt sich aus dem DNS alle relevanten Informationen
4.1) DMARC Richtlinie
4.2) SPF-Record
4.3) öffentlicher DKIM Schlüssel
prüft ob alles zusammenpasst und bewertet deine E-Mail entsprechend als "gute E-Mail" und nicht als "Spam".
Fehlen in deiner DNS Zone Informationen wie z.B. der öffentliche DKIM Schlüssel, so scheitert die Prüfung in Schritt (4) und dies führt entweder dazu das deine E-Mail gar nicht angenommen wird oder als Spam gesehen wird.
Mein Makro überprüft vor der Signatur einer ausgehenden E-Mail ob die punkte 2.1 und 2.2 in meiner eigenen DNS-Zone gesetzt sind, falls nicht wird die E-Mail nicht signiert.
Re: DKIM für Exim4 und Smarthosts?
Aha, dann hatte ich die Tätigkeit des Makros also ursprünglich doch richtig verstanden. Ich verstehe dann aber nach wie vor nicht das WARUM. Du weißt doch selbst, ob du die Punkte 2.1 und 2.2 gesetzt hast oder nicht. Warum dann noch eine Prüfung?bluestar hat geschrieben:25.06.2022 11:13:02Mein Makro überprüft vor der Signatur einer ausgehenden E-Mail ob die punkte 2.1 und 2.2 in meiner eigenen DNS-Zone gesetzt sind, falls nicht wird die E-Mail nicht signiert.
Ich sehe aber an deiner ausführlichen Schilderung, dass es einiges zu konfigurieren gibt, was ich nicht selbst erledigen kann, sondern womit ich meinen Provider beauftragen muss. Und der ist leider nicht gerade der schnellste. Google bemängelt meinen Reverse DNS Eintrag, vielleicht sollte ich dieses Problem zuerst mal beseitigen, und wenn ich Glück habe, kommen meine E-Mails dann wieder an, ohne dass ich mich mit DKIM befassen muss. Aber das Ticket ist jetzt seit 48 Stunden unbearbeitet. Vielleicht sollte ich auch mal über einen Providerwechsel nachdenken.
Re: DKIM für Exim4 und Smarthosts?
Mein Server ist für unterschiedliche Domains im Einsatz und zum Teil erfolgen die DNS Einträge durch Dritte.
So kann ich zumindest sicherstellen keine ungültigen Signaturen zu generieren
Re: DKIM für Exim4 und Smarthosts?
OK, das macht Sinn.
Noch eine neugierige Frage: woher hast du das Know-How, um so ein Setup zu basteln? Nur die Docu aus exim.org, oder gibt es etwas leichter verdauliches?
Noch eine neugierige Frage: woher hast du das Know-How, um so ein Setup zu basteln? Nur die Docu aus exim.org, oder gibt es etwas leichter verdauliches?