Discussione:
Rate limiting un server SMTP postfix
Massimo Lusetti
2014-12-16 14:05:56 UTC
Permalink
Ho bisogno di fare una sorta di rate limiting sulle mail in uscita da
un server SMTP.

In pratica al mio postfix devo poter dire ... mandami al massimo 20
mail per messaggio (esempio se ci sono 30 destinatari nella mail non
mandarla) e imponi un delay di 30 secondi tra un invio e l'altro.

Avete qualche consiglio/esperienza ?
Tipo:
http://www.postfix.org/SMTPD_POLICY_README.html
http://wiki.policyd.org/start
http://postfwd.org/

Grazie
--
Massimo Lusetti
Ferruccio Zamuner
2014-12-16 17:01:33 UTC
Permalink
Post by Massimo Lusetti
Ho bisogno di fare una sorta di rate limiting sulle mail in uscita da
un server SMTP.
In pratica al mio postfix devo poter dire ... mandami al massimo 20
mail per messaggio (esempio se ci sono 30 destinatari nella mail non
mandarla) e imponi un delay di 30 secondi tra un invio e l'altro.
Avete qualche consiglio/esperienza ?
So che si puo' fare con sendmail ed un milter:

https://www.milter.org/milter/103

Come sempre sendmail e' stato pioniere con i milter, immagino che ormai
anche postfix, con anni di ritardo, li stia adottando: diversamente
considera di fare una patch a postfix per supportare l'API dei milter.


Ciao, \ferz
Gianmarco Giovannelli
2014-12-16 19:23:05 UTC
Permalink
Post by Ferruccio Zamuner
Post by Massimo Lusetti
Ho bisogno di fare una sorta di rate limiting sulle mail in uscita da
un server SMTP.
In pratica al mio postfix devo poter dire ... mandami al massimo 20
mail per messaggio (esempio se ci sono 30 destinatari nella mail non
mandarla) e imponi un delay di 30 secondi tra un invio e l'altro.
Avete qualche consiglio/esperienza ?
https://www.milter.org/milter/103
Come sempre sendmail e' stato pioniere con i milter, immagino che
diversamente considera di fare una patch a postfix per supportare
l'API dei milter.
Alune config che implementano un po' delle features che richiedi con
sendmail, senza milter:

define(`confMAX_RCPTS_PER_MESSAGE', `15') dnl. limits the number of
recipients allowed on each message,the excess recipients get retried later
define(confBAD_RCPT_THROTTLE', `3') dnl. slow down any connections
that try to send to lots of non-existent usernames
define(`confCONNECTION_RATE_THROTTLE', `10') dnl. sets a limit on
the number of new connections per second.
define(`confMAX_DAEMON_CHILDREN', `100') dnl. circa 2mb ram l'uno


Poi ci sono una pleteora di altre config se vuoi divertirti.
Ovviamente e' off-topics ... non e' postfix :-)




Best Regards,
Gianmarco Giovannelli , "Unix expert since yesterday"
http://utenti.gufi.org/~gmarco/

Loading...