Newsgroup: it.comp.os.linux.sys
Titolo: postfix - limite allegati per user

Buongiorno,
mi � stato chiesto di personalizzare la dimensione massima degli 
allegati per utente.
l'utente 1 deve poter inviare e ricevere massimo 3M (perch� si trova 
sotto una connessione a pagamento per computo)
l'utente 2 10M
Tutti gli altri possono seguire le direttive generiche imposte in 
main.cf
Gli utenti sono quelli di sistema, questo server � dedicato alla posta 
elettronica monodominio e quindi ho preferito gestire il tutto con gli 
utenti di sistema e non in modalit� postfix-mysql.
Any ideas? Ho cercato un in giro ma non ho trovato granch�.

 Any ideas? Ho cercato un in giro ma non ho trovato granch�.
Puoi realizzare un policy_daemon in grado di applicare questo tipo di
logiche, ma � una cosa che presenta delle difficolt� di trattazione a
livello protocollare:
1) la dimensione del messaggio viene specificata in fase di MAIL FROM,
il che ti consente di decidere in fase RCPT TO se il messaggio per
ciascun utente sar� accettato o meno. Tuttavia il size viene specificato
solamente da client che usino ESMTP, mentre chi usa il vecchio "plain
SMTP" non lo fa. Che fare in quei casi?!?
2) anche alla luce di 1), l'unico modo davvero certo per sapere la
dimensione del messaggio � di operare il filtro al termine della fase
DATA. Tuttavia, se operi a quel livello non hai possibilit� di applicare
azioni "per utente": o decidi di accettare il messaggio per tutti, o lo
rigetti per tutti, dato che la fase RCPT TO � gi� conclusa. A te la scelta.
In linea di massima, per i messaggi in ingresso la cosa pi� semplice �
agire in fase di local delivery e non SMTP; quindi IMHO vai di
procmail/sieve/whatever...
A te la valutazione se il problema backscatter (conseguente al fatto di
agire dopo il termine della fase SMTP) sia un problema oppure no...
Per i messaggi "uscenti" il problema � pi� facile, dato che i filtri non
saranno basati sul destinatario bens� sul mittente (o, meglio ancora,
sulle credenziali di AUTH...), che � sempre uno solo; il che fa s� che
agire in fase END_OF_DATA non comporti corner case fastidiosi.
Questi, almeno, i miei due cent...
-- 
Paranoia is a disease unto itself. And may I add: the person standing
next to you may not be who they appear to be, so take precaution.
-----------------------------------------------------------------------------
http://bofhskull.wordpress.com/

 agire in fase END_OF_DATA non comporti corner case fastidiosi.
perdonami skull, questo passaggio non mi � chiaro. dove posso inserire 
la policy idonea? se mi dai qualche dritta o hint ti ringrazio davvero.

 la policy idonea? se mi dai qualche dritta o hint ti ringrazio davvero.
http://www.postfix.org/SMTPD_POLICY_README.html
In breve: puoi istruire postfix per passare tutti i dati salienti della
mail come STDIN ad uno script, e ricevere dallo STDOUT di questo una
policy (OK, DUNNO, REJECT, ecc).
I dati che postfix passa a tale script li vedi esemplificati nella
pagina linkata.
Occhio alla nota relativa a "size", che riporta quanto gi� detto:
�The "size" attribute value specifies the message size that the client
specified in the MAIL FROM command (zero if none was specified). With
Postfix 2.2 and later, it specifies the actual message size when the
client sends the END-OF-DATA command. �
Quindi ti farai uno script nel tuo linguaggio preferito, che richiamerai
come policy attraverso la chiamata "check_policy_service" in fase
END-OF-DATA.
Lo script in questione far� tutte le sue considerazioni riguardo a
limiti e utenti, basandosi sui dati relativi a "size" e "sasl_username"
passatigli da postfix, e riporter� a postfix "REJECT" se l'utente sta
sforando i limiti o "DUNNO" altrimenti...


Il 24/06/2011 09:38, Skull ha scritto:
[supercut]
ti ringrazio, tutto estremamente chiaro. mi metto subito all'opera.