ich bemühe mich gerade, mit einem postfix auf einem LDAP-Server nach E-Mail-Aliasen zu suchen.
Die LDAP-Abfrage auf dem postfix funktioniert grundsätzlich:
Code: Alles auswählen
root@mail:/etc/postfix# ldapsearch -D "cn=readonly,ou=people,dc=meine-testdomain,dc=de" -w "yodasfunktioniert" -b "ou=people,dc=meine-testdomain,dc=de" -H ldap://ldap.dmz.tux-net
# extended LDIF
#
# LDAPv3
# base <ou=people,dc=meine-testdomain,dc=de> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# people, meine-testdomain.de
dn: ou=people,dc=meine-testdomain,dc=de
objectClass: organizationalUnit
objectClass: top
ou: people
# hs_jka, people, meine-testdomain.de
dn: uid=hs_jka,ou=people,dc=meine-testdomain,dc=de
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: CourierMailAccount
uid: hs_jka
cn: altmetaller
loginShell: /bin/bash
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/hs_jka
shadowMax: 99999
shadowMin: 1
shadowWarning: 7
shadowInactive: 7
sn: altmetaller
givenName:: SsO2cmc=
mail: hs_jka@meine-testdomain.de
mail: ichbin.altmetaller@meine-testdomain.de
mail: test@meine-testdomain.de
shadowLastChange: 18781
userPassword:: hierstehteinpassworthashichhoffeesistderrichtige=
disableimap: 0
disablepop3: 0
disablewebmail: 0
disableshared: 0
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
root@mail:/etc/postfix#
Code: Alles auswählen
root@mail:/etc/postfix# cat main.cf | grep alias_maps
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
root@mail:/etc/postfix#
Code: Alles auswählen
server_host = ldap.dmz.tux-net
search_base = dc=meine-testdomain,dc=de
query_filter = (&(mail=%s)(paid_up=true))
bind_dn = cn=readonly,ou=people,dc=meine-testdomain,dc=de
bind_pw = yodasfunktioniert
Code: Alles auswählen
jka@cleversophie:~$ swaks --to test@meine-testdomain.de --server mail.dmz.tux-net
=== Trying mail.dmz.tux-net:25...
=== Connected to mail.dmz.tux-net.
<- 220 mail.localdomain ESMTP Postfix (Debian/GNU)
-> EHLO cleversophie
<- 250-mail.localdomain
<- 250-PIPELINING
<- 250-SIZE 10240000
<- 250-VRFY
<- 250-ETRN
<- 250-STARTTLS
<- 250-AUTH DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN
<- 250-AUTH=DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN
<- 250-ENHANCEDSTATUSCODES
<- 250-8BITMIME
<- 250-DSN
<- 250-SMTPUTF8
<- 250 CHUNKING
-> MAIL FROM:<jka@cleversophie>
<- 250 2.1.0 Ok
-> RCPT TO:<test@meine-testdomain.de>
<** 550 5.1.1 <test@meine-testdomain.de>: Recipient address rejected: User unknown in local recipient table
-> QUIT
<- 221 2.0.0 Bye
=== Connection closed with remote host.
Code: Alles auswählen
Feb 21 07:55:43 mail postfix/smtpd[18167]: connect from cleversophie.lan.tux-net[192.168.71.80]
Feb 21 07:55:43 mail postfix/smtpd[18167]: warning: dict_ldap_lookup: Search error -7: Bad search filter
Feb 21 07:55:43 mail postfix/smtpd[18167]: warning: ldap:/etc/postfix/ldap-aliases.cf lookup error for "test@meine-testdomain.de"
Feb 21 07:55:43 mail postfix/smtpd[18167]: NOQUEUE: reject: RCPT from cleversophie.lan.tux-net[192.168.71.80]: 451 4.3.0 <test@meine-testdomain.de>: Temporary lookup failure; from=<jka@cleversophie> to=<test@meine-testdomain.de> proto=ESMTP helo=<cleversophie>
Feb 21 07:55:43 mail postfix/smtpd[18167]: disconnect from cleversophie.lan.tux-net[192.168.71.80] ehlo=1 mail=1 rcpt=0/1 quit=1 commands=3/4
Der Filter stammt zugegebenermaßen 1:1 aus der manpage, deckt sich aber mit den Gegebenheiten. Da ich irgendwie so gar nichts zu dem paid_up Ausdruck finde, lasse ich diesen testweise weg:
Code: Alles auswählen
server_host = ldap.dmz.tux-net
search_base = dc=meine-testdomain,dc=de
query_filter = mail=%s
bind_dn = cn=readonly,ou=people,dc=meine-testdomain,dc=de
bind_pw = yodasfunktioniert
Code: Alles auswählen
Feb 21 08:06:10 mail postfix/smtpd[19079]: connect from cleversophie.lan.tux-net[192.168.71.80]
Feb 21 08:06:10 mail postfix/smtpd[19079]: NOQUEUE: reject: RCPT from cleversophie.lan.tux-net[192.168.71.80]: 550 5.1.1 <test@meine-testdomain.de>: Recipient address rejected: User unknown in local recipient table; from=<jka@cleversophie> to=<test@meine-testdomain.de> proto=ESMTP helo=<cleversophie>
Feb 21 08:06:10 mail postfix/smtpd[19079]: disconnect from cleversophie.lan.tux-net[192.168.71.80] ehlo=1 mail=1 rcpt=0/1 quit=1 commands=3/4
Gruß,
Jörg