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:21] – 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 9: | Line 11: | ||
* Viene creato il socket **/ | * Viene creato il socket **/ | ||
* Viene creato un database SQLite in **/ | * Viene creato un database SQLite in **/ | ||
+ | |||
+ | ==== Configurazione ==== | ||
+ | |||
+ | Nel file di configurazione **/ | ||
+ | |||
+ | < | ||
+ | limits: | ||
+ | - [10, 60] # limit to 10 mails by minutes | ||
+ | - [150, 86400] # limits to 150 mails by days | ||
+ | </ | ||
+ | |||
+ | 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. | ||
+ | |||
+ | < | ||
+ | # 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 15: | Line 65: | ||
check_policy_service { unix: | check_policy_service { unix: | ||
</ | </ | ||
+ | |||
+ | ==== 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 25: | Line 77: | ||
</ | </ | ||
- | Nel database | + | Il database |
< | < | ||
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**, | ||
+ | |||
+ | |||
+ | ==== 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.1612866065.txt.gz · Last modified: 2021/02/09 11:21 by niccolo