Rspamd verstehen und konfigurieren

  • Hallo zusammen,


    ich bin gerade etwas am verzweifeln mit Rspamd. Ich habe die normale Ausgangskonfiguration zum Testen belassen und teste aktuell nur mit der WebGUI rum (insbesondere mit dem Hochladen von Testmails), um zu verstehen, was wann passiert. Vielleicht könnt ihr mir auf die Sprünge helfen:


    1. Verstehe ich es richtig, dass ich Module aktivere und konfiguriere und jede Mail diese Module und Konfiguration durchläuft? Andersrum gefragt: Ich habe keine Konfiguration in der ich festlege "Wenn für eine Mail folgende Regeln zutreffen, dann prüfe nur mit folgenden Modulen xyz"?


    2. Beim Hochladen der Testmails bin ich schon ganz zufrieden, aber verstehe nicht, wann er welche Regel anwendet. Beispielsweise sind in der Standardkonfiguration mehrere RBL hinterlegt. Wann nimmt er denn welche (Mailspike, Spamhaus usw.). Anhand welcher Kriterien wird hier welche RBL angesteuert?


    Ich steh wahrscheinlich einfach aufm Schlauch und fuchse mich etwas in die Materie rein.


    Viele Grüße

  • zu 1)

    Meinem Verständnis nach durchläuft jede Mail grundsätzlich alle Checks, wenn durch eine Regel nichts anderes gefordert ist. So kannst du bspw. für gewisse Empfänger Regeln deaktivieren. Wie das geht, wird z. B. im Spamtrap Modul erklärt (letzter Abschnitt). Solche Ausnahmen sind, soweit ich es verstanden habe, aber immer mit Programmieraufwand (Lua) verbunden.


    zu 2)

    Meinem Verständnis nach werden immer alle RBL geprüft. Was geprüft wird, wird in der rbl.conf unter checks definiert. Da beim nachträglichen Prüfen von Mails nicht alle Metadaten vorhanden sind (DKIM, etc.), greifen evtl. nicht alle RBL.

  • Ja da hast du mit beiden Punkten recht.


    Theoretisch müsste dann aber rspamd für eine Testmail die RBL überprüfen.


    Beispielmail mit willkürlicher IP:

    Code
    Received: from example.com [212.227.17.78]
    Subject: Das ist eine Testnachricht
    Message-ID: <1010101@example.net>
    Date: Wed, 19 Oct 2022 17:15:00 +0200
    From: Sender <sender@example.net>
    To: Empfaenger <recipient@example.net>
    MIME-Version: 1.0
    Content-Type: text/plain; charset=us-ascii
    
    Das ist eine Testmail Rspamd


    Ergebnis:

    AUTH_NA (1)
    ONCE_RECEIVED (0.1)
    MIME_GOOD (-0.1) [text/plain]
    ARC_NA (0)
    FROM_HAS_DN (0)
    DMARC_NA (0) [example.net]
    RCPT_COUNT_ONE (0) [1]
    TO_DN_ALL (0)
    R_SPF_NA (0) [No domain]
    RCVD_COUNT_ONE (0) [1]
    R_DKIM_NA (0)
    MIME_TRACE (0) [0:+]
    ASN (0) [asn:8560, ipnet:212.227.0.0/16, country:DE]
    RCVD_TLS_ALL (0)
    MID_RHS_MATCH_FROM (0)
    TO_DOM_EQ_FROM_DOM (0)


    Hier wird keine RBL abgefragt, obwohl es im Standard ja so konfiguriert ist.

  • Woran machst du das fest? Hattest du erwartet, dass eine RBL anschlägt? Das RBL Modul setzt m. E. kein Symbol, wenn die E-Mail nicht von einer RBL erkannt wird. Meine Ham E-Mails haben zumindest keine RBL Symbole.

  • Ich dachte dass zumindest das Ergebnis der Anfrage dort steht. Bei einigen Tests mit anderen IP Adressen zeigt er das auch an. Ich verstehe nur nicht die Logik, wann er es anzeigt und wann nicht. Oder besser gesagt: gucke ich an der falschen Stelle? Muss ich in Debug Logs gucken, um zu sehen welche rbl angefragt wurde?

  • Hm, also in der Weboberfläche unter Symbols werden alle Symbole und deren Gewichtung aufgelistet. Filtere ich dort auf rbl, dann bleiben folgende Kategorien von Symbolen übrig:

    • Score 0: Vornehmlich Fehler bzw. DNSWL - None
    • Score > 0: Blocklisten
    • Score < 0: DNSWL + MAILSPIKE

    Das bedeutet (und so sehe ich das auch bei mir), dass Symbole gesetzt werden, wenn

    • beim Abfragen der RBL ein Fehler auftritt (z. B. die IP deines DNS Resolvers geblockt wird)
    • DKIM / IP / ... auf einer Allowlist stehen (z. B. DNSWL)
    • DKIM / IP / ... auf einer Blocklist stehen (z. B. MAILSPIKE)

    Die bloße Abfrage einer Blocklist wird nicht mittels Symbol dokumentiert, da es keine Symbole mit Score 0 dafür gibt.

    Vermutlich wurde es als wenig sinnvoll erachtet, einen fehlenden Eintrag in einer Allow-/Blocklist positiv bzw. negativ zu gewichten.