[Postfixbuch-users] Alias Problem mit Virtuellen Usern

Chris Cohen kildau-ml at gmx.de
Do Mär 27 16:54:08 CET 2008


On Thursday 27 March 2008 16:40:33 Kai Fürstenberg wrote:
> 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?
Nein, nein ;)
Ich möchte eigentlich einen ganz "einfachen Setup":
Domains: example.org
Hosts: host1.example.org, host2.example.org
Auf allen Rechnern die gleichen Usernamen.
Die einzelnen Hosts haben nur ssmtp installiert und relayen direkt an 
den Postfix-Server.
user1 at host1.example.org soll in der gleichen Mailbox wie 
user1 at host2.example.org oder user1 at example.org landen. Das scheint auch 
nicht mein Problem zu sein. Mein Problem ist, dass, sobald ich 
local_transport oder virtual_transport setze, meine alias_maps (bzw. 
virtual_alias_maps) und local_:recipient_maps (bzw jetzt 
virtual_mailbox_maps) ignoriert werden. Die Alias_maps benötige ich 
eigentlich nur für so blöde dinge wie root, www-data, hostmaster -> 
myuser. 

Mit Systemusern und local als Transport sah das bei mir so aus:
mydestination = ... $mydomain, host1.$mydomain, $host2.mydomain, ...
local_recipient_maps = unix:passwd.byname $alias_maps
alias_maps = hash:/etc/aliases

Jetzt sind aber 5 User dazugekommen, für die ich nicht alle Accounts auf 
meinem Mailserver erstellen möchte (Ja, ich weiß dass ich den Usern 
keine Login-Shell geben müsste, aber ich fand die Idee mit der 
Datenbank schöner. Zumal die eh schon für andere Dinge bestand.)

Hoffentlich habe ich mich jetzt deutlich ausgedrückt ;)

-- 
Viele Grüße
Chris



Mehr Informationen über die Mailingliste Postfixbuch-users