Hallo Patrick,
Am 25.09.10 22:35, schrieb Patrick Ben Koetter:
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
Danke für deine Erläuterungen. Das klingt logisch und sollte eigentlich funktionieren. In der Praxis habe ich es leider nicht hinbekommen. Wahrscheinlich erwartet Postfix als Search-Result einen Eintrag wie in der /etc/passwd:
zarafa:~# postmap -q rrubic proxy:unix:passwd.byname rrubic:x:1055:1055::/home/rrubic:/bin/sh
Vom Active Directory bekomme ich als Result hingegen nur den Usenamen. Mag sein, dass das bei einem "richtigen" Posix-Schema in einer "richtigen" LDAP-Datenbank klappt, aber zumindest Out-of-the-Box scheint es bei einem Microsoft-AD nicht zu klappen.
Kann natürlich auch sein, dass ich den Query nur falsch definiert habe. Hat denn jemand eine Idee, wie so ein Query aussehen müsste um ein AD zu "befragen", damit Postfix auch etwas damit anfangen kann? Welches Result erwartet "local_recipient_maps" denn genau?
Gruß,
Jörn