[Postfixbuch-users] Alias Problem mit Virtuellen Usern

Kai Fürstenberg kai_postfix at fuerstenberg.ws
Do Mär 27 16:40:33 CET 2008


Chris Cohen schrieb am 27.03.2008 15:49:
> 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.
>   
Also wenn ich dich jetzt richtig verstehe, willst du externe 
Mail-Adressen auf "lokale" umschreiben (wobei die nicht wirklich lokal 
sind), sozusagen mehrere E-Mail-Adressen auf eine mappen, oder einfach 
nur umleiten?

Dazu trägst du die externe Domain in die virtual_alias_domains ein. Die 
zugehörigen Adressen in die virtual_alias_maps. In der zweiten Spalte 
der Tabelle trägst du einfach die "lokale" Adresse ein.

Also:
virtual_alias_domains=example.org
virtual_alias_maps=hash:/etc/postfix/virtual_aliases

virtual_aliases:
user1 at example.org | user1 at host1.example.org
user2 at example.org | user2 at host1.example.org
user3 at example.org | user1 at host1.example.org user2 at host1.example.org

Dann:
virtual_mailbox_domains=host1.example.org
virtual_mailbox_maps=hash:/etc/postfix/virtual_mailboxes

virtual_mailboxes:
user1 at host1.example.org | egal
user2 at host1.example.org | egal

-- 
Kai





Mehr Informationen über die Mailingliste Postfixbuch-users