[Postfixbuch-users] Alias Problem mit Virtuellen Usern

Chris Cohen kildau-ml at gmx.de
Do Mär 27 15:49:07 CET 2008


On Thursday 27 March 2008 14:42:53 Kai Fürstenberg wrote:
> Chris Cohen schrieb am 27.03.2008 13:49:
> > On Thursday 27 March 2008 10:42:39 Kai Fürstenberg wrote:
> > > Hallo Chris,
> > >
> > > Chris Cohen schrieb am 26.03.2008 13:26:
> > > > ich formuliere mein Frage einfach nochmal neu, vllt. ist sie ja
> > > > untergegangen.
> > > >
> > > > Ich habe eine interne Domain und 7 User, die (sowieso schon für
> > > > andere Dinge) in einer MySQL-Tabelle stehen. Da die User keine
> > > > Systemaccounts haben, lasse ich local_recipient_maps MySQL
> > > > befragen. Auch Dovecot authentifiziert vernünftig gegen die
> > > > Tabelle und auch Dovecots deliver (möchte ich wegen Sieve
> > > > nutzen) funktioniert (für die User). Mailbox_command kann ich
> > > > ja scheinbar nicht nutzen, da die User nicht lokal vorhanden
> > > > waren. Also bin ich nach
> > > > http://wiki.dovecot.org/LDA/Postfix vorgegangen und habe
> > > > local_transport auf dovecot gesetzt. Alles funktioniert auch
> > > > wunderbar für die 7 Benutzer in der Tabelle. Nun wird aber
> > > > logischerweise local_recipient_maps nicht mehr befragt und auch
> > > > meine Alias tabelle wird ignoriert.
> > > >
> > > > Ich bin noch ziemlich jungfräulich im Mailserver bereich ;),
> > > > wie würdet ihr einen solchen Setup lösen?
> > >
> > > Da die User keine Systemuser sind, solltest du vielleicht auf
> > > *virtual* switchen. Also virtual_mailbox_maps, virtual_transport,
> > > usw. Dann der Dovecot-Anleitung für Virtuelle User folgen.
> >
> > Klingt Einleuchtend. Ich habe mir jetzt das VIRTUAL_README
> > durchgelesen, werde aber nicht so ganz schlau. (Ich habe mich in
> > meinem ersten Posting nicht ganz korrekt ausgedrückt, mydestination
> > stand bei mir auf $mydomain und einem lookup auf eine Tabelle mit
> > Hostnamen in meinem LAN, sodaß user1 at example.org und
> > user1 at host1.example.org in der gleichen Mailbox landeten. Kannst du
> > mir einen Tip geben, wie ich das mit virtual lösen kann?
>

Erstmal Danke für deine ausführliche Antwort.

> my_destination=localhost, localhost.localdomain
> virtual_mailbox_domains=example.org
> virtual_mailbox_maps=mysql:/...
> virtual_transport=dovecot

Genau so hatte ich es auch verstanden, wobei ich dann in der 
MySQL-Tabelle jeweils nur die "left-hand side" of "@domain.tld" 
hatte/habe. Die Mail wurde mit:

Mar 27 15:27:29 amy postfix/smtpd[4456]: NOQUEUE: reject: RCPT from 
unknown[10.1.32.13]: 550 5.1.1 <mrkofee at daisy.unixhosts.org>: Recipient 
address rejected: User unknown in virtual mailbox table; from=<> 
to=<mrkofee at daisy.unixhosts.org> proto=ESMTP 
helo=<zoidberg.unixhosts.org>

abgelehnt.

> Normalerweise gibt man in virtual_mailbox_maps den Mbox/Maildir-Pfad
> des Users an. Diesen benutzt virtual dann als Speicherort (relativ zu
> virtual_mailbox_base).
>
> virtual_mailbox_maps wird aber auch für
> smtpd_reject_unlisted_recipient verwendet um unzustellbare Mails
> direkt abzuweisen.
>
> Wenn ich die Doku jetzt richtig verstehe (ich selbst benutze virtual
> als Transport), dient in dieser Konfiguration virtual_mailbox_maps
> nur noch als Liste der möglichen Empfänger. Die Zustellung erfolgt ja
> über dovecot.
>
> Dovecot seinerseits ist jetzt für die Einlieferung zuständig. Also
> muss hier auch die Unterscheidung zwischen 'example.org' und
> 'host1.example.org' vorgenommen werden, wobei host1.example.org dann
> natürlich auch in den virtual_mailbox_domains auftauchen muss.

(Oh Gott, wie formuliere ich das am Einfachsten)
Kommentiere ich nun virtual_mailbox_maps aus, werden mails an nicht 
existierende User korrekterweise abgehlehnt. Mails an die 6 User in der 
Tabelle werden angenommen wie sich das gehört. Ich frage mich aber 
wieder (wie schon bei local), warum?

Mar 27 15:43:36 amy postfix/smtpd[4607]: connect from 
unknown[10.1.32.13]
Mar 27 15:43:36 amy postfix/smtpd[4607]: D029478399: 
client=unknown[10.1.32.13]
Mar 27 15:43:36 amy postfix/cleanup[4610]: D029478399: 
message-id=<20080327144336.ABF534C444 at zoidberg.unixhosts.org>
Mar 27 15:43:36 amy postfix/qmgr[4596]: D029478399: 
from=<mrkofee at daisy.unixhosts.org>, size=791, nrcpt=1 (queue active)
Mar 27 15:43:36 amy postfix/smtpd[4607]: disconnect from 
unknown[10.1.32.13]
Mar 27 15:43:36 amy dovecot: auth(default): master in: 
USER^I1^Imrkofee^Iservice=deliver
Mar 27 15:43:36 amy dovecot: auth-worker(default): sql(mrkofee): query: 
SELECT password FROM users WHERE username = 'mrkofee';
Mar 27 15:43:36 amy dovecot: auth(default): password(mrkofee): 
Credentials: {CRYPT}{PLAIN-MD5}ebb12eb47da2af187241a0d74fc3d14f
Mar 27 15:43:36 amy dovecot: auth(default): master out: 
USER^I1^Imrkofee^Iuid=5000^Igid=5000^Ihome=/var/mail/mrkofee
Mar 27 15:43:36 amy postfix/pipe[4611]: D029478399: 
to=<mrkofee at daisy.unixhosts.org>, relay=dovecot, delay=0.05, 
delays=0.03/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot 
service)
Mar 27 15:43:36 amy postfix/qmgr[4596]: D029478399: removed

Wenn ich das richtig verstehe, befragt Postfix dovecot, ob der User 
existiert? (Es scheint so zu sein, denn virtual_alias_maps werden 
wieder, wie schon bei local, ignoriert.) Wieso macht Postfix das? Und 
was mich am meisten interesessiert, wie bringe ich Postfix nun dazu mit 
dovecot als Transportmittel meine Aliase zu beachten?

>
> > (Btw. wann kommt das neue Postfix-Buch raus? Wäre jetzt sicherlich
> > hilfreich...)
>
> Das aktuelle ist doch hervorragend...

Kann ich nicht beurteilen, denn ich besitze es nicht. Nach den Problemen 
die ich momentan habe hätte ich dann halt das neuste gekauft, aber laut 
Amazon muss ich da noch bis Juni warten.

-- 
Viele Grüße
Chris




Mehr Informationen über die Mailingliste Postfixbuch-users