* Joern Bredereck jb@bw-networx.net:
ich habe hier einen Mailserver, auf dem die User momentan noch als lokale Unix-User angelegt sind. Desweiteren werden lokale Aliase als Verteilerlisten verwendet. Die Zustellung erfolgt via Procmail. Procmail übergibt die E-Mails dann an den sg. zarafa-dagent (delivery-agent). Dieser wiederum schreibt die Mails dann ins MySQL-Backend des Zarafa-Groupware-Servers.
Da die Zarafa-User sowieso gegen das ActiveDirectory des Domänencontrollers authentifiziert werden, und um sich die Pflege von zwei identischen Benutzer-Datenbanken zu sparen, ist nun geplant auch auf die lokalen Unix-User zu verzichten und langfristig nur noch mit virtuellen Usern über LDAP-Lookup zu arbeiten.
Letzteres ist gut dokumentiert und funktioniert in anderen Installatioen bereits.
Das Problem ist nun folgendes: Bekomme ich es irgendwie hin einen Mischbetrieb aus beiden Varianten zu fahren? D.h. ich möchte zunächst
Ja, ein Mischbetrieb ist möglich.
einmal die lokalen Aliase und die lokalen User beibehalten. Gleichzeitig möchte ich aber z.B. weitere Benutzer via LDAP-Lookup aus dem AD "ziehen" können und z.B. auch die Verteilerlisten nach und nach auf LDAP umstellen.
Grundsätzlich sehe ich hierbei das Problem, dass in alle Beispiel-Setups für die LDAP-Lookups immer Virtualusers und Virtualdomains verwendet werden. Wenn ich das richtig verstanden habe, dann müssten die Lookups allerdings im Kontext der Localusers und Localdomains erfolgen.
Postfix prüft die $local_recipient_maps, um lokale User zu identifizieren. Der Standard sieht passwd und aliases-Datei vor:
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
Du kannst da zusätzlich einen LDAP-Lookup reinhängen:
local_recipient_maps = ldap:/etc/postfix/localRecipients.cf proxy:unix:passwd.byname $alias_maps
In der Reihenfolge der maps musst Du Dir klar werden, welche (ldap oder lokal) zuerst konsultiert werden soll. Der erste Match beendet die Abfrage weiterer, nachfolgender maps.
Zusätzlich musst Du darauf achten, dass Postfix im Kontext von $local_recipient_maps nur den localpart einer Mailadresse suchen wird, weil der Namensraum des domainpart über $mydomain bereits festgelegt ist.
Für die Konstruktion der LDAP-Abfrage heißt das mit den Makros spielen, bei query_filter %u und nicht %s verwenden und ggf. den Namen der Domain in den Query mit einbauen, damit die Abfrage auch einen match ergibt.
In jedem Fall solltest Du auf der Kommandozeile mit postmap testen, ob der Query funktioniert bevor Du ihn in Postfix reinhängst:
% postmap -q recipient ldap:/etc/postfix/localRecipients.cf
p@rick