doc:appunti:linux:sa:policyd-rate-limit
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:sa:policyd-rate-limit [2021/02/09 11:37] – niccolo | doc:appunti:linux:sa:policyd-rate-limit [2024/09/16 17:54] (current) – [Configurazione] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== policyd-rate-limit ====== | ====== policyd-rate-limit ====== | ||
+ | |||
+ | :!: **ATTENZIONE**: | ||
Si installa il pacchetto **policyd-rate-limit**: | Si installa il pacchetto **policyd-rate-limit**: | ||
Line 10: | Line 12: | ||
* Viene creato un database SQLite in **/ | * Viene creato un database SQLite in **/ | ||
- | === Configurazione === | + | ==== Configurazione |
Nel file di configurazione **/ | Nel file di configurazione **/ | ||
Line 21: | Line 23: | ||
Oltre all **login sasl**, è possibile tenere traccia e limitare anche il **sender** e l' | Oltre all **login sasl**, è possibile tenere traccia e limitare anche il **sender** e l' | ||
+ | |||
+ | < | ||
+ | limit_by_sasl: | ||
+ | limit_by_sender: | ||
+ | limit_by_ip: | ||
+ | </ | ||
È possibile specificare delle **eccezioni** (in eccesso o in difetto) per un particolare identificativo. | È possibile specificare delle **eccezioni** (in eccesso o in difetto) per un particolare identificativo. | ||
- | === Collegamento con Postfix === | + | < |
+ | # Limits by id is empty per default. | ||
+ | limits_by_id: | ||
+ | |||
+ | # Some examples: | ||
+ | # limits_by_id: | ||
+ | # | ||
+ | # | ||
+ | # - [1000, 86400] # limits to 1000 mails by days | ||
+ | # | ||
+ | # | ||
+ | # - [50, 900] | ||
+ | </ | ||
+ | |||
+ | Il sistema può generare una mail di notifica giornaliera. Si deve indicare per quale limite temporale si vuole il report; se ad esempio nella impostazione dei **limits** si ha un limite con intervallo di tempo 900 secondi, si può chiedere che nel report vengano riportati i superamenti di tale soglia: | ||
+ | |||
+ | < | ||
+ | report: True | ||
+ | report_to: " | ||
+ | report_subject: | ||
+ | report_limits: | ||
+ | report_only_if_needed: | ||
+ | </ | ||
+ | |||
+ | Se il parametro '' | ||
+ | |||
+ | ==== Collegamento con Postfix | ||
Per aggiungerlo ai filtri utilizzati da Postfix è sufficiente ad esempio aggiungerlo alla catena dei filtri **smtpd_relay_restrictions**: | Per aggiungerlo ai filtri utilizzati da Postfix è sufficiente ad esempio aggiungerlo alla catena dei filtri **smtpd_relay_restrictions**: | ||
Line 32: | Line 66: | ||
</ | </ | ||
- | === Database === | + | ==== Database |
Nel database esiste una tabella **mail_count** con un record per ogni mail inviata, nella riga compare il nome di login e il timestamp dell' | Nel database esiste una tabella **mail_count** con un record per ogni mail inviata, nella riga compare il nome di login e il timestamp dell' | ||
Line 43: | Line 77: | ||
</ | </ | ||
- | Il database può (dovrebbe) essere svuotato regolarmente eseguendo **%%policyd-rate-limit --clean%%** ad esempio con un cronjob: | + | Il database può (deve) essere svuotato regolarmente eseguendo **%%policyd-rate-limit --clean%%** ad esempio con un cronjob: |
< | < | ||
0 0 * * * policyd-rate-limit / | 0 0 * * * policyd-rate-limit / | ||
</ | </ | ||
+ | |||
+ | Vengono automaticamente rimossi tutti i record che hanno un **timestamp più vecchio del doppio del limite temporale maggiore**. | ||
Se nella configurazione sono abilitati i **report**, nel database viene creata anche la tabella **limit_report**, | Se nella configurazione sono abilitati i **report**, nel database viene creata anche la tabella **limit_report**, | ||
+ | |||
+ | |||
+ | ==== Debug ==== | ||
+ | |||
+ | Il processo logga in **/ | ||
+ | |||
+ | Per ogni esecuzione viene loggato qualcosa del genere: | ||
+ | |||
+ | < | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | policyd-rate-limit[907]: | ||
+ | </ | ||
+ | |||
+ | ==== Limite raggiunto con destinatari multipli ==== | ||
+ | |||
+ | Il limite viene giustamente applicato al **numero dei destinatari**, | ||
+ | |||
+ | < | ||
+ | postfix/ | ||
+ | 450 4.7.1 < | ||
+ | Recipient address rejected: Rate limit reach, retry later; | ||
+ | from=< | ||
+ | to=< | ||
+ | </ | ||
+ | |||
+ | Cioè l' | ||
+ | |||
+ | Un client di posta dovrebbe segnalare l' | ||
+ | |||
+ | < | ||
+ | An error occurred while sending mail. The mail server responded: | ||
+ | 4.7.1 < | ||
+ | Please check the message recipient " | ||
+ | </ | ||
doc/appunti/linux/sa/policyd-rate-limit.1612867032.txt.gz · Last modified: 2021/02/09 11:37 by niccolo