Postfix + LDAP (search filters)

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Norn
проходил мимо

Postfix + LDAP (search filters)

Непрочитанное сообщение Norn » 2007-07-19 14:17:36

Всем привет!

проблема заключается в том, что простые условия работают (например ldapvirtual_query_filter = (mail=%s)), а вот условия типа ldapvirtual_query_filter = (&(mail=%s)(accountStatus=active)) нет.

в main.cf имеем:

virtual_mailbox_maps = ldap:ldapvirtual
ldapvirtual_server_host = 127.0.0.1
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_version = 3
###############################
ldapvirtual_search_base = ou=mailusers,dc=it-pulse,dc=com,dc=ua
ldapvirtual_query_filter = (|(mail=%s)(accountStatus=disabled)(mailAlternateAddress=%s))
ldapvirtual_result_attribute = mailbox

письма пользователям у которых совпадает либо mail либо mailAlternateAddress проходят, а вот пользователи у которых accountStatus=disabled не проходят.
причем, если ldapvirtual_query_filter = (&(mail=%s)(mailAlternateAddress=%s)), то почта вообще не проходит.

смотрим ldapsearch:

ldapsearch -x -W -D "cn=root,dc=it-pulse,dc=com,dc=ua" '(|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))
# requesting: ALL
#

# atl, mailusers, it-pulse.com.ua
dn: uid=atl,ou=mailusers,dc=it-pulse,dc=com,dc=ua
uid: atl
cn: ATL
mail: atl@atl.biz.ua
uidNumber: 1010
gidNumber: 1010
mailHost: mail.it-pulse.com.ua
homeDirectory: /var/imap/home/atl
mailMessageStore: /var/imap/home/atl/Maildir
mailbox: atl/Maildir/
objectClass: qmailUser
objectClass: CourierMailAccount
objectClass: top
objectClass: person
userPassword:: e0NSWVBUfVJRYURVWmNkcUE1SVkg
mailForwardingAddress: atl@atl.biz.ua
sn: postfix
accountStatus: disabled

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1


Заранее благодарен за помощь!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Norn
проходил мимо

Re: Postfix + LDAP (search filters)

Непрочитанное сообщение Norn » 2007-07-19 14:21:38

Norn писал(а):причем, если ldapvirtual_query_filter = (&(mail=%s)(mailAlternateAddress=%s)), то почта вообще не проходит.
ошибся. имелось ввиду ldapvirtual_query_filter = (&(mail=%s)(accountStatus=active))

из чего следует, что условие accountStatus= вообще не работает почему-то

Norn
проходил мимо

Re: Postfix + LDAP (search filters)

Непрочитанное сообщение Norn » 2007-07-20 9:30:07

Проблему решил исправив ACL в slapd.conf(убрал правила для accountStatus)
Но можно было просто в main.cf указать пользователя и пароль которые могут читать accountStatus
то есть указать ldapvirtual_bind_dn и ldapvirtual_bind_pw