[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