[resolu] [rspamd] e-mail sortant activer les politiques/symboles SPF/DKIM

Bonjour,

Qui est chaud du Rspamd ?

Pour mes passerelles de messagerie sortantes, j’aimerais avoir les messages les plus propres possibles et donc je voudrais rejeter tous les messages qui ne sont pas signés DKIM, SPF invalide…

Pour cela j’ai augmenté le score (par exemple) du symbole R_DKIM_NA :

"R_DKIM_NA" {
    weight = 15.0;
    description = "Missing DKIM signature";
    one_shot = true;
    groups = ["dkim"];
}

Je précise que je suis authentifié sur ces passerelles… En effet si ce n’est pas le cas, ma stratégie pour augmenter le score fonctionne mais si je suis authentifié il semble que rspamd n’utilise pas toutes les politiques…

Cependant, j’ai essayé ce type de configuration:

authenticated {
    priority = high;
    authenticated = yes;
    apply {
        groups_enabled = ["policies","dkim", "spf"];
        symbols_enabled = ["ARC_NA", "R_DKIM_NA", "R_SPF_ALLOW"]
    }
}

Sans effet, les symboles présents sont les suivants : https://dl.zici.fr/1692736531-74/Selection_591.png

ARC_NA, FROM_EQ_ENVFROM, FROM_HAS_DN, RCPT_COUNT_ONE, RCVD_COUNT_TWO, RCVD_TLS_ALL, RCVD_VIA_SMTP_AUTH, TO_DN_NONE, TO_MATCH_ENVRCPT_ALL

Je précise bien sûr que ce message n’est pas signé DKIM SPF invalide, mais aucune précision dessus, alors qu’avec le même message, si je ne suis pas authentifié j’ai les symboles :

ARC_NA, ASN, DMARC_POLICY_REJECT, FROM_EQ_ENVFROM, FROM_HAS_DN, MID_RHS_MATCH_FROM, MIME_GOOD, MIME_TRACE, R_DKIM_NA, R_SPF_NA, RCPT_COUNT_ONE, RCVD_COUNT_TWO, RCVD_TLS_ALL, TO_DN_NONE, TO_MATCH_ENVRCPT_ALL

Bref ma question est : comment appliquer les mêmes règles Rspamd sur les mails sortants avec un utilisateur authentifié ou non ?

J’ai également essayé de définir skip_authenticated = false; un peu partout…

Un dump de ma config actuelle : PrivateBin

Merci pour votre réponse,
David

La doc semble dire que c’est possible, et ton bout de conf semble correct : Scanning outbound mail

Y’a un exemple aussi dans la FAQ : Frequently asked questions

Par contre j’ai un doute sur les symboles à rajouter, tu as essayé DKIM_CHECK ?

Oui, c’est dit possible mais pas bien détailler sur le comment…

Pas mieux…
Le symbole DKIM_CHECK n’existe pas chez moi d’ailleurs.

Merci quand même,
Une autre piste ?

Ha ouais ? Je l’ai trouvé dans l’interface web, la description c’est : « DKIM check callback », pas très clair tout ça…

Exacte il est présent dans l’interface aussi chez moi, mais jamais dans la conf ::-/ bon c’est puissant rspmad, mais c’est pas limpide pour moi tout le temps…

La conf de yunohost qui fait de l’authentification rspamd

Merci @ljf mais le module dkim_signing signe les messages. Moi je veux les rejeter s’il ne sont pas signé (message sortant), ça me semble pas être la conf type yunohost.

Désolé, j’avais pas compris que, dans ton setup, les messages sont censés être signé sur d’autres serveurs . Je comprenais pas pourquoi augmenter le scoring antispam du coup ^^

Le réglage de rspamd pour filtrer les mails dans ynh est nul en effet (d’ailleurs on prend les contribution sur le sujet :wink: )

Augmenter le score pour refuser le message s’il n’est pas signé correctement. Je me dis que c’est un moyen d’arriver à ce résultat mais il y en a peut être d’autres…
Ici la passerelle n’est là que pour délivrer les messages et être bien vu des opérateurs (déjà un sacré boulot en soit) la signature DKIM et compagnie c’est fait en amont.

1 « J'aime »

Bon je peine avec mon problème de difficulté… J’ai sollicité le support payant de Rspamd, même après relance je n’ai pas de nouvelle :frowning: (pas un bon signe je trouve)

Quelle version de rspamd as-tu ?

Est-ce que ta configuration settings tu l’'as mise dans le fichier local.d/settings.conf ?
Si oui essaye également ici modules.d/settings.conf car selon ta version il y a un ancien bug qui ne prenait pas en compte le fichier présent dans local.d

Dans la FAQ, il parle aussi de faire un settings spécifique pour le outbound : Frequently asked questions
Peut être à tester…

Il faut reconnaître que la doc n’est pas des plus clair.

La version des dépôts Debian 11 : 2.7

Je viens de faire les même tests avec 3.4 sans plus de succès…

Pas bête, je viens de test, pas mieux… Ici les changements dans « local.d/settings » semble pris en considération car quand je désactive tout les symboles, c’est bien désactivé (par exemple)

J’ai fouiné un peu, ça semble venir de ces petites lignes :

Je vais me chauffer pour faire un patch et le re-compiler :grimacing: a voir si ça a de l’effet… je vous dit…

Je suis pas un tueur en dev, peut être que Rspamd permet la création de plugin pour modifier son comportement source ?

Après lecture du code : rspamd/spf.lua at master · rspamd/rspamd · GitHub rspamd/dkim_check.c at master · rspamd/rspamd · GitHub et quelques re-compilation… pour voir…

J’ai aperçu le BOULEAN « check_local » « check_authed » :-o

Et ça fonctionne :

/etc/rspamd/local.d/spf.conf

check_authed = true
check_local = true

/etc/rspamd/local.d/dkim.conf

check_authed = true
check_local = true

Je ne comprends pas pourquoi ce n’est pas documenté, c’est visiblement une configuration généralisé mais que je n’ai trouvé que dans la documentation de « spamtrap » : Spamtrap module

Je l’ai signalé…
C’est un beau projet Rspamd, mais c’est vrai que la documentation est maigrichonne…

Merci à tous pour le soutien,
David

3 « J'aime »

Je m’aperçois que j’ai pas fait le SAV sur cette discussion.

J’ai dû patcher Rspamd pour qu’il vérifie le SPF avec l’IP du sevrer qui est en train d’analyser le message et non avec le serveur qui d’où provient le message.

--- /tmp/spf.lua	2023-12-02 17:31:47.304000000 +0100
+++ /usr/share/rspamd/plugins/spf.lua	2023-12-02 17:28:16.440000000 +0100
@@ -112,7 +112,8 @@
           tostring(ip))
     end
   else
-    ip = task:get_from_ip()
+    ip = 'IP EN DUR, C'EST COCHON, SI QUELQU'UN A MIEUX.... '
   end
 
   local function flag_to_symbol(fl)

De cette façon je ne délivre que les messages « propres » par mes passerelles (en tout cas bien configuré en SPF et DKIM quand ils sortent)

(pour mémoire : il s’agit de passerelle sortante, qui ne traite que du flux sortant et qui souhait que ce flux soit le plus propre possible : https://retzo.net/services/hebergement/passerelle-e-mail-relai-smtp/ )

David