Exim 4 und System Quota

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
metrix
Posts: 94
Joined: 2002-10-26 15:52

Exim 4 und System Quota

Post by metrix » 2004-05-15 22:21

Hallo,

benutze Exim 4.33 auf Debian. Meine User haben ganz normale MailDir Verzeichnisse (benutzt für Courier-Imap) mit einem harten System-Quota.

Code: Select all

maildir_home:
  debug_print = "T: maildir_home for $local_part@$domain"
  driver = appendfile
  directory = $home/Maildir
  delivery_date_add
  envelope_to_add
  return_path_add
  maildir_format
  mode = 0600
  mode_fail_narrower = false
Mein Problem ist nun, dass wenn ein User seine Mailbox voll hat, Exim noch immer die Mails von extern annimmt und in seine lokale Queue steckt ("Disk quota exceeded: mailbox is full). Wenn der Empfänger in der nächsten Zeit dann nicht seine Mailbox aufräumt, läuft sich diese E-Mail tot.

Meine Problem ist, dass weder Absender noch Empfänger darüber informiert werden. Also der Absender sollte bei einer vollen Mailbox am besten direkt einen REJECT bekommen oder wenigstens einen Bounce.
Leider habe ich bei Google dazu nichts gefunden :-(

In weiteren Schritten würde ich gerne einbauen, dass der Empfänger-User auch eine Infomail über die Fehlzustellung erhält.

Hoffe mir kann einer für Schritt 1 ein paar Tipps geben!


Danke![/quote]

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim 4 und System Quota

Post by dodolin » 2004-05-16 11:32

Meine Problem ist, dass weder Absender noch Empfänger darüber informiert werden.
Das ist im Normalfall nicht korrekt. Der Absender wird nach einer gegebenen Zeit einen Bounce bekommen. Das ist natürlich nicht so schön, weil auch die durch Spam- und Wurmmails gefälschten Absender diese Mailbox full Bounces bekommen.
Also der Absender sollte bei einer vollen Mailbox am besten direkt einen REJECT bekommen oder wenigstens einen Bounce.
Aufgrund der internen Architektur von Exim (Sorry, möchte das jetzt nicht in aller Ausführlichkeit breittreten, wurde aber schon des öfteren auf exim-users diskutiert) ist ein REJECT leider nicht ohne zusätzliche Hacks möglich. Ich bin auch schon am überlegen, ob ich z.B. per cron regelmäßig die Quotas abfrage und die User, die das Maximum erreicht haben z.B. in eine MySQL DB eintrage. Diese könnte man dann in der rcpt_acl querien und entsprechend rejecten.

Einen Bounce bekommt der Absender normalerweise, siehe oben.
Leider habe ich bei Google dazu nichts gefunden
http://www.google.de/search?q=exim+quota+bounce
-> http://www.oreilly.de/catalog/exim/chapter/ch03.html -> STRG+F "quota"

Wie lange Exim versucht, die Mail zuzustellen und wann dann endgültig ein Bounce verschickt wird, lässt sich über die Retry-Times einstellen (spec.txt, Chapter 32).
In weiteren Schritten würde ich gerne einbauen, dass der Empfänger-User auch eine Infomail über die Fehlzustellung erhält.
Schwierig. Du könntest regelmäßig den mainlog und rejectlog durchsuchen und ihm das Ergebnis schicken. Ich halte das aber absolut nicht für sinnvoll.

Wenn man Maildir mit maildirquota benutzt und keine System-Quotas, dann kann man dem User automatisch eine Quota-Warnmail zukommen lassen, wenn seine Mailbox x % seiner Quota belegt. Mit System-Quotas geht das meines Wissens nicht, weil Exim die nicht im Voraus lesen kann, sondern lediglich vom System erfährt: "Speichern geht nicht, Quota voll".

Wenn ich die Postings von exim-users gefunden habe, reiche ich sie nach...

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim 4 und System Quota

Post by dodolin » 2004-05-16 11:48

Bezieht sich zwar auf maildirquotas, aber als Beispiel für die Retry-Rules:
http://www.flatmtn.com/computer/Linux-E ... #Exim4-6.3

Ein Beispiel:
http://www.exim.org/pipermail/exim-user ... 71477.html
Wobei man sieht, dass es mit "overflow" wirklich schwierig wird. Wenn aber ein User sein Quota schon bis zum Maximum aufgebraucht hat, wäre es ja egal, wie groß die Mail ist, d.h. man könnte diesen RCPT immer abweisen.

Das dritte Problem ist das weit schwerwiegender. Es könnten aliasrouter im Spiel sein, die aus einer Adresse sogar mehrere User und damit lokale Deliveries machen, etc. Hier wird es ziemlich unmöglich zur SMTP-Zeit zu wissen, welche Transports benutzt werden und ob es Probleme mit der Quota geben wird und mit welchem User und mit welchem nicht.

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim 4 und System Quota

Post by metrax » 2004-05-16 11:56

dodolin wrote:Ich bin auch schon am überlegen, ob ich z.B. per cron regelmäßig die Quotas abfrage und die User, die das Maximum erreicht haben z.B. in eine MySQL DB eintrage. Diese könnte man dann in der rcpt_acl querien und entsprechend rejecten.
Mhhh, gute Idee. Da bin ich noch nicht drauf gekommen :p. Sobald mein Testserver wiederläuft werd ich das mal in Angriff nehmen, sowas zu basteln.

metrix
Posts: 94
Joined: 2002-10-26 15:52

Re: Exim 4 und System Quota

Post by metrix » 2004-05-16 14:42

hmm, habe schon fast befürchtet, als ich bei google nix richtiges gefunden habe, dass es nicht so einfach wird :-(

wenn ich exim das quota machen lasse sehe ich das problem, dass ich dann ja mittels imap immer noch nachrichten kopieren kann und so über das limit komme.


hat schon einer mit "deliverquota" rumprobiert? gibt bei debian auch ein "deliverquota.courier" aufruf ... damit sollte sich denke der bounce "bauen" lassen ...

mal gucken ob ich da was rausfinde *g

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Exim 4 und System Quota

Post by dodolin » 2004-05-16 18:44

wenn ich exim das quota machen lasse sehe ich das problem, dass ich dann ja mittels imap immer noch nachrichten kopieren kann und so über das limit komme.
Also Courier-IMAP beachtet auch maildirquotas. Genaugenommen, haben die Courier-Leuts das AFAIK sogar erfunden. Exim hat das dann lediglich dort abgeschaut und nachgemacht.
gibt bei debian auch ein "deliverquota.courier" aufruf ... damit sollte sich denke der bounce "bauen" lassen ...
Wie meinst du das? "Einen Bounce bauen..."???

Ich sehe nicht genau, wozu das deliverquota gut sein soll. Sowohl Exim als auch Courier-IMAP können selbst direkt maildirquotas implementieren.