Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Postfix LDAP Active Directory

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Gesperrt
adular
Newbie
Newbie
Beiträge: 3
Registriert: 12. Apr 2005, 11:12

Postfix LDAP Active Directory

Beitrag von adular »

Hallo zusammen,
ich habe ein Problem mit Postfix und LDAP - Abfragen aus MS Active Directory.
Ich benutze LDAP für local_recipient_maps und local_recipient_maps.
Meine LDAP Abfrage funktioniert, mein Problem bezieht sich auf den Fall wenn kein Eintrag in der LDAP Datenbank gefunden wird.
In diesem Fall meldet Postfix ein alias database unavailable im Gegensatz zu einer lokalen Berkley-Datenbank bei der ein not found zurückgegeben wird.
Bei einem alias database unavailable bleibt die Mail leider in der Queue und es wird immer wieder versucht sie zuzustellen.
Daher meine Frage ist dieses verhalten bei allen LDAP Datenbanken so? (z.b. Openldap)?
Gibt es eine Möglichkeit in Postfix die Reaktion auf "nicht gefunden" zu ändern?

Zum System:
standard Postfix von SLES9
Active Directory von MS Server 2003

bin für jede Hilfe dankbar

Alexander
Benutzeravatar
ThomasF
Hacker
Hacker
Beiträge: 578
Registriert: 1. Mai 2004, 12:37
Wohnort: Köln

Beitrag von ThomasF »

Hmm,

gib doch einfach beide mit an ... ich hole mir einen Teil meiner aliases aus Openldap und einen Teil aus der lokalen virtual und habe Dein Prob bisher noch nicht gehabt.

z.B :

Code: Alles auswählen

virtual_maps = hash:/etc/postfix/virtual ldap:virtual-ldap
virtual-ldap_server_host = localhost
virtual-ldap_server_port = 389
virtual-ldap_bind = no
virtual-ldap_search_base = o=meine-firma,c=de
virtual-ldap_scope = sub
virtual-ldap_query_filter = (mailRoutingAddress=%s)
virtual-ldap_result_attribute = mailLocalAddress
Aber vielleicht hilft Dir auch dieser Eintrag in der main.cf

Code: Alles auswählen

unknown_local_recipient_reject_code = 550
EDIT
Hmm, wer lesen kann ist klar im Vorteil ;-)

Du holst Dir schon die vorhandenen User aus der ADS und hast gar keine lokalen User ?!?

Also ich habe z.B auch alle User in LDAP aber in meine local_recipient_maps in der main.cf steht auf default.
Das bedeutet das bei mir die lokale Abfrage von PAM erst auf LDAP umgeleitet wird.
Ich weiß aber nicht ob das bei Dir hinhaut da die User auch einen Account für die Authentifizierung haben ...

So long

ThomasF
______________________

Ich bin /root, ich darf das !
adular
Newbie
Newbie
Beiträge: 3
Registriert: 12. Apr 2005, 11:12

Beitrag von adular »

Vielleicht hab ich das Problem nicht genau genug geschildert.
Die Abfrage per LDAP aus Active Directory für einen "positiven" Treffer ist kein Problem. (also wenn der alias oder mailname gefunden wird).
Das Problem tritt auf wenn KEIN Eintrag gefunden wird.
Statt einen NOT FOUND wie es bei /etc/alias auftritt ergibt ein es bei der LDAP Datenbank ein "alias database unavailable". Und die Nachricht bleibt dann für lange Zeit in der Queue weil der Zustand
"status=deferred" ist.
Meiner Meinung sollte da auch ein NOT FOUND und ein sofortiges zurückweisen der Nachricht folgen.
Hier ein kurzer LOG auszug. Der empfänger "asd" existiert nicht. Wird nicht in /etc/aliases gefunden, dann wird in der LDAP verbindung geschaut und richtig: "dict_ldap_lookup: Search error 32: No such object".
Dann aber: "connect to subsystem private/defer" statt zu bounce und dann: "relay=local, delay=0, status=deferred (alias database unavailable)"

Ist das normal bei LDAP Datenbanken und wenn wie geht man mit den deferred mails um? Geht da kein bounce?

vielen Dank für jeden hilfreichen Gedanken

Alexander

Code: Alles auswählen

Apr 14 11:16:44 larnit postfix/local[24930]: deliver_alias: hash:/etc/aliases(0,34100): asd not found
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_lookup: In dict_ldap_lookup
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_lookup: No existing connection for LDAP source /etc/postfix/ldap_alias.cf, reopening
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_connect: Connecting to server ldap://platin.name.de:389
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_connect: Actual Protocol version used is 2.
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_connect: Cached connection handle for LDAP source /etc/postfix/ldap_alias.cf
Apr 14 11:16:44 larnit postfix/local[24930]: dict_ldap_lookup: Searching with filter (|(mail=asd@name.de)(sAMAccountName=asd))
Apr 14 11:16:44 larnit postfix/local[24930]: warning: dict_ldap_lookup: Search error 32: No such object
Apr 14 11:16:44 larnit postfix/local[24930]: connect to subsystem private/defer
Apr 14 11:16:44 larnit postfix/local[24930]: send attr nrequest = 0
Apr 14 11:16:44 larnit postfix/local[24930]: send attr flags = 0
Apr 14 11:16:44 larnit postfix/local[24930]: send attr queue_id = 6C5D9E05
Apr 14 11:16:44 larnit postfix/local[24930]: send attr original_recipient = asd@name.de
Apr 14 11:16:44 larnit postfix/local[24930]: send attr recipient = asd@name.de
Apr 14 11:16:44 larnit postfix/local[24930]: send attr offset = 145
Apr 14 11:16:44 larnit postfix/local[24930]: send attr status = 4.0.0
Apr 14 11:16:44 larnit postfix/local[24930]: send attr action = delayed
Apr 14 11:16:44 larnit postfix/local[24930]: send attr reason = alias database unavailable
Apr 14 11:16:44 larnit postfix/local[24930]: private/defer socket: wanted attribute: status
Apr 14 11:16:44 larnit postfix/local[24930]: input attribute name: status
Apr 14 11:16:44 larnit postfix/local[24930]: input attribute value: 0
Apr 14 11:16:44 larnit postfix/local[24930]: private/defer socket: wanted attribute: (list terminator)
Apr 14 11:16:44 larnit postfix/local[24930]: input attribute name: (end)
Apr 14 11:16:44 larnit postfix/local[24930]: 6C5D9E05: to=<asd@name.de>, relay=local, delay=0, status=deferred (alias database unavailable)
adular
Newbie
Newbie
Beiträge: 3
Registriert: 12. Apr 2005, 11:12

lösung

Beitrag von adular »

Victor Duchovni hat mich auf die Lösung gebracht. Im LDAP Subtree gibt es ein Verzeichnis das ohne Bind nicht zu lesen ist.
Das ergibt dann den Fehler: Search error 32: No such object

grüße

Alexander
Gesperrt