DKIM signing bei Mailweiterleitung
Hallo Liste,
ich lasse meine Mails durch rspamd mit dkim signieren, in dem ich sie per non_smtpd_milters durch rspamd leite. Klappt soweit ganz gut. Problem: ich leite bestimmte Newsletter im Dovecot per Sieve Regel weiter an einen anderen Account. Hier versucht jetzt rspamd wieder zu signieren, obwohl der Absender natürlich nicht aus meiner Domain ist und somit auch kein Key vorhanden ist. Das quittiert rspamd regelmässig mit einer Fehlermeldung. Ist zwar nicht schlimm, die Mail wird trotzdem verarbeitet, aber halt unschön.
Wie könnte ich sowas verhindern?
Jochen
On 02.04.2019 10:30, J. Fahrner wrote:
Wie könnte ich sowas verhindern?
eingehend und ausgehend trennen? beim eingehenden braucht es keine DKIM-Signatur, sondern nur die Validierung ausgehend wiederum braucht es nur DKIM-Signatur selbst ...
Am 2019-04-02 19:11, schrieb Walter H.:
On 02.04.2019 10:30, J. Fahrner wrote:
Wie könnte ich sowas verhindern?
eingehend und ausgehend trennen? beim eingehenden braucht es keine DKIM-Signatur, sondern nur die Validierung ausgehend wiederum braucht es nur DKIM-Signatur selbst ...
Das ist nicht das Problem. Die Sieve-Weiterleitung ist ja ausgehend, und das möchte er eben signieren. Auch wennś von Fremden ist.
On 02.04.2019 10:30, J. Fahrner wrote:
Hier versucht jetzt rspamd wieder zu signieren, obwohl der Absender natürlich nicht aus meiner Domain ist und somit auch kein Key vorhanden ist. Das quittiert rspamd regelmässig mit einer Fehlermeldung. Ist zwar nicht schlimm, die Mail wird trotzdem verarbeitet, aber halt unschön.
Wie könnte ich sowas verhindern?
Es gibt eine "try_fallback" Option. Der Default ist "true". Bedeutet, wenn es keine spezifische Option für eine Domain gibt wird der Default angenommen.
Am 2019-04-02 19:55, schrieb Carsten:
Es gibt eine "try_fallback" Option. Der Default ist "true". Bedeutet, wenn es keine spezifische Option für eine Domain gibt wird der Default angenommen.
Danke! Hört sich gut an. Werde ich testen. Schade, dass rspamd so mickrig dokumentiert ist. Wäre schön, wenn die einzelnen Optionen besser erklärt wären.
Wenn dir etwas auffällt, dass besser dokumentiert sein könnte, einfach rspamd.com forken, ändern und PR stellen.
https://github.com/rspamd/rspamd.com
Ist halt Open Source und die meiste Man-Power geht in den Code. Jede Hilfe bei fehlender Doku oder Verständnisproblemen ist willkommen.
Das geht auch super bei den Maps die nachgeladen werden:
https://github.com/rspamd/maps
VG c
On 02.04.19 20:08, J. Fahrner wrote:
Am 2019-04-02 19:55, schrieb Carsten:
Es gibt eine "try_fallback" Option. Der Default ist "true". Bedeutet, wenn es keine spezifische Option für eine Domain gibt wird der Default angenommen.
Danke! Hört sich gut an. Werde ich testen. Schade, dass rspamd so mickrig dokumentiert ist. Wäre schön, wenn die einzelnen Optionen besser erklärt wären.
Am 2019-04-02 20:23, schrieb Carsten Rosenberg:
Wenn dir etwas auffällt, dass besser dokumentiert sein könnte, einfach rspamd.com forken, ändern und PR stellen.
Sorry, aber deine Sichtweise ist ziemlich naiv. Forken ist keine Lösung. Ich würde ja gerne bei der Doku mitwirken (was ich bei anderen Projekten auch tue!), aber dazu müsste ich's natürlich erstmal verstehen. Da beisst sich die Katze in den Schwanz!
Sorry, aber deine Sichtweise ist ziemlich naiv. Forken ist keine Lösung.
Forken meinte ich im Sinne wie es typischerweise auf Github/-lab läuft. Du forkst ein Projekt, machst die Änderungen an deinem persönlichen Fork und stellst dann einen Pull-Request an das Haupt-Projekt in den nur die direkten Maintainer direkt etwas einstellen können.
Ich würde ja gerne bei der Doku mitwirken (was ich bei anderen Projekten auch tue!), aber dazu müsste ich's natürlich erstmal verstehen. Da beisst sich die Katze in den Schwanz!
Aus der Entwicklersicht scheint manches vielleicht erstmal völlig logisch, was von den Anwendern dann aber gar nicht so verstanden wird. Eine kleiner Zusatz kann dann schon helfen etwas noch weiter auszuführen.
VG c
On 02.04.19 20:34, J. Fahrner wrote:
Am 2019-04-02 20:23, schrieb Carsten Rosenberg:
Wenn dir etwas auffällt, dass besser dokumentiert sein könnte, einfach rspamd.com forken, ändern und PR stellen.
Sorry, aber deine Sichtweise ist ziemlich naiv. Forken ist keine Lösung. Ich würde ja gerne bei der Doku mitwirken (was ich bei anderen Projekten auch tue!), aber dazu müsste ich's natürlich erstmal verstehen. Da beisst sich die Katze in den Schwanz!
Am 2019-04-02 21:00, schrieb Carsten Rosenberg:
Forken meinte ich im Sinne wie es typischerweise auf Github/-lab läuft. Du forkst ein Projekt, machst die Änderungen an deinem persönlichen Fork und stellst dann einen Pull-Request an das Haupt-Projekt in den nur die direkten Maintainer direkt etwas einstellen können.
Und was hat das jetzt mit "missing doku" zu tun? Was nicht dokumentiert ist, kann ich auch in einem persönlichen Fork nicht besser dokumentieren.
- To be eligible for signing, a mail must be received from an authenticated user OR a reserved IP address OR an address in the sign_networks map (if defined)
- Selector and path to key are selected from domain-specific config if present, falling back to global config
https://rspamd.com/doc/modules/dkim_signing.html
Dort steht genau die Lösung deines Problems. Was sollte hier noch fehlen?
Viele Grüße
Carsten
On 02.04.19 21:04, J. Fahrner wrote:
Am 2019-04-02 21:00, schrieb Carsten Rosenberg:
Forken meinte ich im Sinne wie es typischerweise auf Github/-lab läuft. Du forkst ein Projekt, machst die Änderungen an deinem persönlichen Fork und stellst dann einen Pull-Request an das Haupt-Projekt in den nur die direkten Maintainer direkt etwas einstellen können.
Und was hat das jetzt mit "missing doku" zu tun? Was nicht dokumentiert ist, kann ich auch in einem persönlichen Fork nicht besser dokumentieren.
Am 2019-04-03 06:31, schrieb Carsten Rosenberg:
- To be eligible for signing, a mail must be received from an
authenticated user OR a reserved IP address OR an address in the sign_networks map (if defined)
- Selector and path to key are selected from domain-specific config if
present, falling back to global config
https://rspamd.com/doc/modules/dkim_signing.html
Dort steht genau die Lösung deines Problems. Was sollte hier noch fehlen?
Nun, da steht ja nur wie er sich die Keys und den Selektor bestimmt. Da steht nicht, wie man ihm sagt für welche Domains er überhaupt signieren soll.
On 03.04.19 07:21, J. Fahrner wrote:
Am 2019-04-03 06:31, schrieb Carsten Rosenberg:
- To be eligible for signing, a mail must be received from an
authenticated user OR a reserved IP address OR an address in the sign_networks map (if defined)
- Selector and path to key are selected from domain-specific config if
present, falling back to global config
https://rspamd.com/doc/modules/dkim_signing.html
Dort steht genau die Lösung deines Problems. Was sollte hier noch fehlen?
Nun, da steht ja nur wie er sich die Keys und den Selektor bestimmt. Da steht nicht, wie man ihm sagt für welche Domains er überhaupt signieren soll.
aber dort steht, wie du den rspamd mittels der verwendeten IP Adresse vom signieren abhälst. Deine dovecot Weiterleitung sollte von einer IP kommen die nicht in sign_networks enthalten ist. Oder du definierst in der Konfig deines MTA einen Port, welcher den rspamd Filter nicht dran hat und benutzt den in der dovecot Konfig als MTA für deine Weiterleitungen
Am 2019-04-03 09:03, schrieb Tobi:
aber dort steht, wie du den rspamd mittels der verwendeten IP Adresse vom signieren abhälst. Deine dovecot Weiterleitung sollte von einer IP kommen die nicht in sign_networks enthalten ist. Oder du definierst in der Konfig deines MTA einen Port, welcher den rspamd Filter nicht dran hat und benutzt den in der dovecot Konfig als MTA für deine Weiterleitungen
Nein. Läuft alles auf dem gleichen Rechner, ist nicht per IP unterscheidbar. Dovecot, Postfix, Roundcube.
On 03.04.19 09:16, J. Fahrner wrote:
Läuft alles auf dem gleichen Rechner, ist nicht per IP unterscheidbar. Dovecot, Postfix, Roundcube.
dann definierst du am einfachsten einen neuen smtpd in master.cf auf einem dedizierten Port am localhost. Ohne jegliche Filter bzw überschreibst mit -o alle allenfalls in main.cf global gesetzten Filter. Dann in der dovecot Konfig vom lda als submission_host diesen neuen localhost:port angeben. So sollten deine Weiterleitungen nicht mehr durch den spamfilter, was imho eh etwas doppelt gemoppelt ist, oder? ;-)
Genau und dass es einen Fallback gibt wenn das nicht explizit definiert ist. Im kommentierten Config Beispiel siehst du, dass du auch auswählen kannst ob Rspamd header-from, smtp-from oder den auth-user zur Suche der Domain benutzt.
Es steht aber nirgendwo, dass zu signierende Domänen erst definiert werden müssen. Das ist analog zum Amavis, da macht man das ja auch nicht.
- To be eligible for signing, a mail must be received from an
authenticated user OR a reserved IP address OR an address in the sign_networks map (if defined)
Das ist sein Aufhänger (Amavis: ORIGINATING)
Und für jede Mail, die Rspamd meint signieren zu wollen, sucht er keys. Erst explizit, dann als Fallback
# Default path to key, can include '$domain' and '$selector' variables path = "/var/lib/rspamd/dkim/$domain.$selector.key";
-- Ich seh immer noch nicht wo Rspamd hier mikrig dokumentiert ist.
VG c
On 03.04.19 07:21, J. Fahrner wrote:
Am 2019-04-03 06:31, schrieb Carsten Rosenberg:
- To be eligible for signing, a mail must be received from an
authenticated user OR a reserved IP address OR an address in the sign_networks map (if defined)
- Selector and path to key are selected from domain-specific config if
present, falling back to global config
https://rspamd.com/doc/modules/dkim_signing.html
Dort steht genau die Lösung deines Problems. Was sollte hier noch fehlen?
Nun, da steht ja nur wie er sich die Keys und den Selektor bestimmt. Da steht nicht, wie man ihm sagt für welche Domains er überhaupt signieren soll.
Am 2019-04-03 09:58, schrieb Carsten Rosenberg:
Ich seh immer noch nicht wo Rspamd hier mikrig dokumentiert ist.
Einzige Erklärung der Option "try_fallback": Whether to fallback to global config
Wie soll ich denn riechen was "fallback to global config" bedeutet, bzw. für Konsequenzen hat?
Dir mag das vielleicht klar sein, mir jedenfalls nicht.
participants (5)
-
Carsten
-
Carsten Rosenberg
-
J. Fahrner
-
Tobi
-
Walter H.