DKIM für Exim4 und Smarthosts?

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Plenz
Beiträge: 86
Registriert: 05.04.2009 11:33:17

DKIM für Exim4 und Smarthosts?

Beitrag von Plenz » 22.06.2022 18:52:49

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 :evil:

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?

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DKIM für Exim4 und Smarthosts?

Beitrag von bluestar » 22.06.2022 22:58:21

Plenz hat geschrieben: ↑ zum Beitrag ↑
22.06.2022 18:52:49
Ich hoffe, das Thema ist nicht allzu trivial, aber ich suche ein Tutorial, wie ich meinen ausgehenden E-Mails einen DKIM-Header verpassen kann.
Ich kann dir zwar kein Tutorial liefern, aber kurz erklären wie ich mein Setup aussieht.

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} }
Ich erkläre kurz:
* 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

Plenz
Beiträge: 86
Registriert: 05.04.2009 11:33:17

Re: DKIM für Exim4 und Smarthosts?

Beitrag von Plenz » 23.06.2022 00:31:39

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?

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DKIM für Exim4 und Smarthosts?

Beitrag von bluestar » 25.06.2022 07:55:05

Plenz hat geschrieben: ↑ zum Beitrag ↑
23.06.2022 00:31:39
Vielen Dank, aber ich verstehe leider nur Bahnhof.
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?
Plenz hat geschrieben: ↑ zum Beitrag ↑
23.06.2022 00:31:39
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?
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
Beiträge: 86
Registriert: 05.04.2009 11:33:17

Re: DKIM für Exim4 und Smarthosts?

Beitrag von Plenz » 25.06.2022 10:30:06

bluestar hat geschrieben: ↑ zum Beitrag ↑
25.06.2022 07:55:05
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?
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.
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.
bluestar hat geschrieben: ↑ zum Beitrag ↑
25.06.2022 07:55:05
Plenz hat geschrieben: ↑ zum Beitrag ↑
23.06.2022 00:31:39
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?
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.
WOW! Das heißt, es findet eine Kommunikation mit dem Empfänger-Server statt? Hätte nie gedacht, dass das möglich ist.
Und warum überhaupt? Warum nicht jede E-Mail signieren, egal ob der Empfänger-Server etwas damit anfangen kann oder nicht?

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DKIM für Exim4 und Smarthosts?

Beitrag von bluestar » 25.06.2022 11:13:02

Plenz hat geschrieben: ↑ zum Beitrag ↑
23.06.2022 00:31:39
WOW! Das heißt, es findet eine Kommunikation mit dem Empfänger-Server statt? Hätte nie gedacht, dass das möglich ist.
Nein das hat du nicht ganz verstanden. Es findet keine Kommunikation mit dem Empfänger-Server statt.
Plenz hat geschrieben: ↑ zum Beitrag ↑
23.06.2022 00:31:39
Warum nicht jede E-Mail signieren, egal ob der Empfänger-Server etwas damit anfangen kann oder nicht?
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.

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.

Plenz
Beiträge: 86
Registriert: 05.04.2009 11:33:17

Re: DKIM für Exim4 und Smarthosts?

Beitrag von Plenz » 25.06.2022 22:39:06

bluestar hat geschrieben: ↑ zum Beitrag ↑
25.06.2022 11:13:02
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.
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?

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.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DKIM für Exim4 und Smarthosts?

Beitrag von bluestar » 25.06.2022 22:52:11

Plenz hat geschrieben: ↑ zum Beitrag ↑
25.06.2022 22:39:06
Warum dann noch eine Prüfung?
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

Plenz
Beiträge: 86
Registriert: 05.04.2009 11:33:17

Re: DKIM für Exim4 und Smarthosts?

Beitrag von Plenz » 26.06.2022 00:06:39

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?

Antworten