Voilà, j'ai un serveur de mail (actuellement un sendmail), et je voudrais limiter l'envoi pour être certain de ne pas envoyer plus de N mail dans un temps T.
Alors avant de crier RTFM ou Google est ton ami, sachez que oui j'ai cherché, et tout ce que j'ai trouvé sont des solutions pour des problèmes qui ressemblent beaucoup en APPARENCE au mien.
J'ai parcouru la doc de sendmail, et je n'ai pas trouvé, j'ai cherché pour postfix et je n'ai pas trouvé, après je n'ai peut-être pas les bons mots-clés, mais surtout j'ai l'impression de demander quelque chose d'inhabituel.
En général, les gens veulent limiter à l' entrée de la queue. C'est très facile de dire à un sendmail ou autre d'arrêter de recevoir des mails au bout d'un certain nombre et de répondre qu'il faut réessayer plus tard. On trouve tout plein de documentation sur comment faire pour limiter un hôte, un utilisateur. J'ai trouvé comment faire avec plusieurs mailer, j'ai trouvé des tas de milter ou autres logiciels tielrs pour faire des filtrage super fin et des rêgles évoluées pour filtrer l'entrée en queue, mais ce n'est pas ce que je veux.
Moi je veux limiter à la sortie de la queue.
Tout accepter, répartir l'envoi dans le temps
Je veux que tout les mails entrent en queue, je ne veux pas que mon mailer réponde "renvoie plus tard" (à cause de certaines applis pas très fiable à ce sujet).
Aussi, je veux être certain que mon mailer ne traite pas plus de N mail dans un temps T : je veux l'utiliser comme relai vers un autre SMTP que je ne maîtrise pas et qui est suceptible de me blacklister pour la journée. Je veux donc être certain que je reste sagement en dessous de sa limite.
Illustration du problème
Une illustration simple à mon problème, imaginons qu'un incident génère un grand nombre de mail d'alertes, que j'ai le droit à seulement 1000 mails par heure, que la somme de mes mails de toute la journée soient à peine supérieur à ce nombre, mais que à une heure particulière, paf je me prends 1001 alerte : je suis bloqué.
Une autre illustration, imaginons des employés qui ont parfois besoin de faire un mailing, et qu'un jour, deux personnes ont fait leur mailing à la même heure, PAF tout le monde est bloqué pour la journée alors à qu'à 30min d'intervalle tout serait passé.
soluces ?
Je ne veux donc empêcher personne d'envoyer des mails, je veux juste empêcher mon relai de dépasser un quotat temporaire, c'est la somme de tout les mails que je veux temporiser. Donc déjà toutes les solutions à base de milter et autre filtres d'entrées ne me semblent pas vraiment opportunes...
Actuellement j'utilise sendmail (parce que culture d'entreprise, historicité, syndrôme de Stockholm, toussa), mais si vous avez une solution avec postifx ou exim, je prends aussi ! Et si je n'ai pas su voir l'évidence, et soyez indulgent et montrez moi la lumière. :D
# man gcc ?
Posté par totof2000 . Évalué à -5.
# exim !
Posté par detail_pratique . Évalué à 2.
Genre ça ; trouvé ici :
# Local senders rcpt rate limiting 250 per 6 hour (1,000 per day)
warn ratelimit = 250 / 6h / leaky / per_rcpt / $sender_address
senders = ! lsearch;/usr/local/exim/tables/ratelimit_whitelist.txt
hosts = +relay_from_hosts
log_message = Local senders rcpt rate limit ( $sender_address ) exceeds $sender_rate per $sender_rate_period
# Remote IP rate limiting 10 per min (60 per hour)
warn ratelimit = 10 / 1m / strict / per_mail / $sender_host_address
senders = ! lsearch;/usr/local/exim/tables/ratelimit_whitelist.txt
hosts = !+relay_from_hosts
log_message = Remote IP message rate limit ( $sender_address_domain ) exceeds $sender_rate per $sender_rate_period
La doc d'Exim
http://www.exim.org/exim-html-current/doc/html/spec_html/index.html
Je pense que tu t'en sortiras sans problème : )
[^] # Re: exim !
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
J'ai un peu du mal avec l'anglais mais il semble que c'est un bon exemple de ce qui ressemble beaucoup à mon problème, mais n'est pas mon problème : je ne veux pas vouloir arrêter qqn d'envoyer ("stop from sending") mais de répartir le relai dans le temps.
Cela dit, ces acl dans exim sont intéressantes, et peut-être que je trouverai mon bonheur dedans. En survolant j'ai vu une commande "delay", que je peux probablement déclencher quand le ratelimit est dépassé, si ce délai est interne à la queue (pas le smtp qui répond au client) j'ai donc ce que je cherche.
merci déjà pour la piste, et je creuse. :)
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: exim !
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
lu sur http://exim.org/exim-html-current/doc/html/spec_html/ch40.html :
In order to cause an ACL to be used, you have to name it in one of the relevant options in the main part of the configuration. These options are:
For example, if you set
the little ACL defined above is used whenever Exim receives a RCPT command in an SMTP dialogue.
ces règles sont exécutées pendant le dialogue smtp, donc elles servent pour l'entrée en queue... donc ce n'est pas ce que je cherche, ou alors je n'ai pas compris. :/
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: exim !
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
J'ai fait un truc tout bidon :
et bien j'ai dans mon log exim
et dans mon dialogue SMTP j'ai bien 20s entre mon HELO et le 250 du serveur
Bref, ce n'est pas ce que je veux, moi je veux pouvoir terminer le dialogue SMTP, pouvoir éteindre électriquement mon client, me coucher, que sais-je, mais être sûr que mon mail est entré en queue. Qu'il sorte de la queue dans 1h ne me dérange pas, et je veux qu'il sorte de la queue dans une heure si j'ai déjà dépassé mon quota.
Déjà le A de ACL pour Access était louche.
ce commentaire est sous licence cc by 4 et précédentes
# iptables ?
Posté par eric gerbier (site web personnel) . Évalué à 2.
il y a moyen de limiter les flux sortants par des iptables avec une option --hitcount
# policyd ?
Posté par eric gerbier (site web personnel) . Évalué à 2.
D'après la doc ( http://www.policyd.org/content/quotas) la gestion des quotas de policyd devrait aussi permettre de limiter les flux sortants.
# chez postfix
Posté par ashgan . Évalué à 2.
bonjour
en fouillant les options de Postfix, on peut trouver cette option qui devrait faire l'affaire:
http://www.postfix.org/postconf.5.html#transport_destination_rate_delay
pour sendmail, par contre, je ne connais pas.
[^] # Re: chez postfix
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
Ah sympa !
S'il me faut remplacer sendmail, en plus de la problématique évoquée dans ce forum je vais comparer exim et postfix en fonction du reste de mes usages :)
ce commentaire est sous licence cc by 4 et précédentes
# Procédure pour Postfix
Posté par Ellendhel (site web personnel) . Évalué à 2.
Réponse tardive, mais il semble que tu ne sois pas le seul à gérer ce problème, et d'autres avant toi on essayé de trouver une solution :
Ralentir le débit de postfix pour wanadoo/orange
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.