Hello,
Je souhaite mettre en place un ratelimit pour mes utilisateurs, en utilisant le module ratelimit offert par Rspamd.
Alors, j’ai plus ou moins accouché de cette conf, mais je ne suis pas sûre de tout bien comprendre. En anglais, les commentaires originaux et en français, ce que j’ai moi appliqué, avec les effets que cela semble avoir :
rates {
# Limite pour tous les mails par recipient (3 par minute)
to = "3 / 1m";
# Limite pour tous les mails depuis une même ip (5 par minute)
to_ip = "5 / 1m";
# Limit for all mail per one source ip and from address (rate 2 per minute)
# to_ip_from = "2 / 1m";
# Limit for all bounce mail (rate 2 per hour)
# bounce_to = "2 / 1h";
# Limit for bounce mail per one source ip (rate 1 per hour)
# bounce_to_ip = "1 / 1h";
# Utilisateurs exterieurs ne peuvent envoyer +4 mails / minute pour un destinataire hébergé chez moi
user = "4 / 1m";
}
# On fait sauter cette limite si les destinataires sont en copie
whitelisted_rcpts = "postmaster,mailer-daemon";
max_rcpt = 5;
Alors ça marche plus ou moins, avec des effets pas forcément bien maîtrisés…
Par exemple lorsque j’envoi plus de 3 mails par minute depuis l’extérieur depuis une même adresse, vers une adresse que j’héberge, les mails au delà des 3 dans la même minute passent en soft reject. Et ils sont visiblement réexpédiés plus tard (mais là aussi, je ne sais pas quel mécanisme gère la réexpédition : est-ce MON postfix, où est-ce le serveur d’envoi distant qui refait un essai ?).
Bref, pourriez-vous m’aider à comprendre ces différentes options parce-que la doc officielle, là pour le coup, j’ai du mal de la saisir. On y parle de limit, mais limit de quoi ? Mails envoyés/reçus ? Patates ? carottes ? Je cite le passage intéressant d’ailleurs :
bounce_to
: limit bounces per recipientbounce_to_ip
: limit bounces per recipient per ipto
: limit per recipientto_ip
: limit per pair of recipient and sender’s IP addressto_ip_from
: limit per triplet: recipient, sender’s envelope from and sender’s IPuser
: limit per authenticated user (useful for outbound limits)
Mon objectif est simple :
Je veux qu’un utilisateur ne puisse pas envoyer plus de 3 mails par minute à n’importe qui. Sauf dans le cas où le mail envoyé dépasse les 4 utilisateurs en copie.
Ce qui vient de l’extérieur, je m’en fiche, postscreen + rspamd feront déjà le boulot, après si les mails sont légitimes, mon serveur fera le boulot.
/edit : visiblement, ce que je veux faire passe simplement par la clause user. Mais j’aimerais quand même bien comprendre le sens des autres clauses.