An An wrote:
> С ldapsearch я разобрался. Даже уже в exim -be протестировал:
> 
> netgenic# exim -be
>> ${lookup ldap{[email protected] pass=ldapmail3 
>> ldap:///dc=domain,dc=local?mail?sub?(&(|(objectClass=user)(objectClass=group))([email protected]))}}
> [email protected]
>> ${lookup ldap{[email protected] pass=ldapmail3 
>> ldap:///dc=domain,dc=local?mail?sub?(&(|(objectClass=user)(objectClass=group))([email protected]))}}
> 
>>
> 
> Исходя из запроса, сформировал заново запрос в конфиге:
> 
> ldap_default_servers = 192.168.128.61::3268
> 
> MS_DOMAIN       = domain.local
> MS_USER         = [email protected]
> MS_PASS         = ldapmail3
> MS_B_DN         = "dc=domain,dc=local"
> MS_AD_MAIL_RCPT = \
>                 user=MS_USER \
>                 pass=MS_PASS \
>                 ldap:///MS_B_DN?mail?sub?\
>                 (&\
>                 (|\
>                 
> (objectClass=user)(objectClass=publicFolder)(objectClass=group)\
>                 )\
>                 (mail=${local_part}@MS_DOMAIN})\
>                 )
> 
> Осталось с драными acl разобраться:
> 
> warn    condition       = ${lookup ldap {MS_AD_MAIL_RCPT}{$value}fail}
>              message         = Win
> 
> warn    !condition      = ${lookup ldap {MS_AD_MAIL_RCPT}{$value}fail}
>              message         = Lose
> 
> Которые я ввел для проверки, и которые все время ругаются:
> 
> Warning: ACL "warn" statement skipped: condition test deferred: ldap_search 
> failed: -7, Bad search filter

во-первых, нужно таки определиться, накладывать фильтрь по атрибуту mail
или по атрибуту proxyAddresses.

во-вторых, при наложении фильтра на proxyAddresses нужно указывать
$domain, а не MS_DOMAIN. то, что они в данном конкретном случае могли
совпасть (это непонятно из-за замены в примерах реального домена на
domain.local), это сильно частный случай и конструкции MS_DOMAIN в
значении фильтра точно делать нЕчего.

в-третьих, можно в выводе exim -d -bh посмотреть, какой именно LDAP
запрос получился после подстановки всех этих макросов. и тогда уже
думать, что не так. кстати, для проверки существования адреса хватает
фильтра просто по proxyAddresses.

> 14 сентября 2011, 12:49 от Victor Ustugov <[email protected]>:
>> An An wrote:
>>> Все равно не выходит. На запрос:
>>>
>>> enic# ldapsearch -LLL -H ldap://192.168.128.61:3268 -s base
>>>
>>> есть ответ. Но на запрос:
>>>
>>> enic# ldapsearch -D exim -w ldapmail3 -LLL 
>>> "(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:[email protected]))"
>>>        ldap_bind: Invalid credentials (49)
>>>         additional info: 80090308: LdapErr: DSID-0C0903A9, comment: 
>>> AcceptSecurityContext error, data 52e, v1db1
>>
>> а что возвращает
>>
>> ldapsearch -x -h 192.168.128.61 -p 3268 -LLL -D [email protected] -w
>> ldapmail3 -b "dc=some-domain,dc=local"
>> "(proxyAddresses=SMTP:[email protected])"
>>
>> ?
>>
>> причем значении артибута proxyAddresses нужно указывать почтовый домен,
>> а в ldap логине и basedn должна быть указана доменная зона виндовой
>> домена из AD. в изначальном условии задачи мелькало то
>> some-domain.local, то dc=some-domain,dc=local, то DC=pac,DC=local
>>
>> в общем и целом нужно подставить корректные данные и выполнить запрос
>>
>>> enic# ldapsearch -D exim -w ldapmail3 -LLL -H ldap://192.168.128.61:3268 
>>> "(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:[email protected]))"
>>> ldap_bind: Invalid credentials (49)
>>>         additional info: 80090308: LdapErr: DSID-0C0903A9, comment: 
>>> AcceptSecurityContext error, data 52e, v1db1
>>>
>>>
>>>
>>>
>>> 14 сентября 2011, 10:40 от Golub Mikhail <[email protected]>:
>>>> Привет.
>>>>
>>>> hide ldap_default_servers =  ldap::3268 (именно двоеточие)
>>>> LDAP_AUTH= NETTIME=5 user="CN=username,OU=....,DC=...,=UA" pass=password
>>>> IP_EXCHANGE=1.1.1.1
>>>>
>>>>      route_data= ${lookup ldap \
>>>>             {LDAP_AUTH \
>>>>               ldap:///DC=...=UA?proxyAddresses?sub?\
>>>>               
>>>> (&(proxyAddresses=smtp:$local_part@$domain)(|(objectclass=group)(&(objectclass=user)(msExchUserAccountControl=0)))\
>>>>               )\
>>>>             }\
>>>>             {IP_EXCHANGE}fail}
>>>>
>>>> Переписать "по вкусу".
>>>>
>>>> А ошибка, похоже, как раз в строке подключения.
>>>> И USER для подключения я задавал в полной форме в его месту в лдапе, т.е. 
>>>> - user="CN=username,OU=....,DC=...,=UA"
>>>>
>>>> ------------------------
>>>> С уважением,
>>>> Голуб Михаил
>>>>
>>>> From: [email protected] 
>>>> [mailto:[email protected]] On Behalf Of An An
>>>> Sent: Wednesday, September 14, 2011 9:25 AM
>>>> To: [email protected]
>>>> Subject: [Exim-users] Invalid credential при lookup ldap
>>>>
>>>> Компания приобрела Exchange, поэтому возникла необходимость постепенного 
>>>> переноса пользователей в AD(Win 2008 R2).
>>>> Задача: При обнаружении пользователя в AD, перенаправлять письма на другой 
>>>> IP.
>>>> Проблем с роутерами быть не должно, поэтому проверяю работу ldap запроса в 
>>>> acl_check_rcpt. Итак, конфиг:
>>>>
>>>> ldap_default_servers = <; 192.168.128.61:3268
>>>>
>>>> MS_DOMAIN = some-domain.local
>>>> MS_USER = exim
>>>> MS_PASS = ldapmail3
>>>> MS_BASE_DN = "dc=some-domain,dc=local"
>>>>
>>>> LDAP_AD_MAIL_RCPT = \
>>>>        user=MS_USER \
>>>>       pass=MS_PASS \
>>>>       ldap:///MS_BASE_DN?mail?sub?\
>>>>       (&(|(objectClass=user)(objectClass=group))\
>>>>       (proxyAddresses=SMTP:${quote_ldap:${local_part}@MS_DOMAIN}))
>>>>
>>>> В acl_check_rcpt первым стоит:
>>>>
>>>> warn    condition       = ${lookup ldap {LDAP_AD_MAIL_RCPT}}
>>>>              message         = Win
>>>>              logwrite        = Win
>>>>
>>>> warn    !condition      = ${lookup ldap {LDAP_AD_MAIL_RCPT}}
>>>>               message         = Lose
>>>>               logwrite        = Lose
>>>> 
>>>> И вот тут совсем начинается непонятное.
>>>>
>>>> 2011-09-14 10:17:03 H=(some-domain.ru) [127.0.0.1] Warning: ACL "warn" 
>>>> statement skipped: condition test deferred: failed to bind the LDAP 
>>>> connection to server 192.168.128.61:3268 - LDAP error 49: Invalid 
>>>> credentials
>>>> 
>>>> Насколько я нагуглил, данная ошибка говорит о неверном запросе. Поэтому я 
>>>> попробовал так:
>>>>
>>>> MS_USER="CN=exim,CN=Users,DC=some-domain,DC=local"
>>>>
>>>> и так:
>>>>
>>>> LDAP_AD_MAIL_RCPT = \
>>>>        user=MS_USER \
>>>>        pass=MS_PASS \
>>>>        ldap:///DC=pac,DC=local?mail?sub?(&(objectClass=top)\
>>>>        (objectClass=user)(objectClass=organizationalPerson)\
>>>>        (objectClass=person)(mail=${quote_ldap:${local_part}@MS_DOMAIN}))
>>>>
>>>> и даже из какого-то гайда:
>>>>
>>>> LDAP_AD_MAIL_RCPT = \
>>>>        user=MS_USER \
>>>>        pass=MS_PASS \
>>>>       ldap:///LDAP_AD_BASE_DN?mail?sub?\
>>>>      (&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))\
>>>>      (|(proxyAddresses=${quote_ldap:${local_part}@MS_DOMAIN})\
>>>>      (proxyAddresses=smtp:${quote_ldap:${local_part}@MS_DOMAIN}))\
>>>>      (!(userAccountControl:1.2.840.113556.1.4.803:=2))
>>>>
>>>> Все равно
>>>> 2011-09-14 10:17:03 H=(some-domain.ru) [127.0.0.1] Warning: ACL "warn" 
>>>> statement skipped: condition test deferred: failed to bind the LDAP 
>>>> connection to server 192.168.128.61:3268 - LDAP error 49: Invalid 
>>>> credentials
>>>> _______________________________________________
>>>> Exim-users mailing list
>>>> [email protected]
>>>> http://mailground.net/mailman/listinfo/exim-users
>>>>
>>>>
>>> _______________________________________________
>>> Exim-users mailing list
>>> [email protected]
>>> http://mailground.net/mailman/listinfo/exim-users
>>>
>>
>> --
>> Best wishes Victor Ustugov   mailto:[email protected]
>> public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
>> ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC
>>
>> _______________________________________________
>> Exim-users mailing list
>> [email protected]
>> http://mailground.net/mailman/listinfo/exim-users
>>
>>
> _______________________________________________
> Exim-users mailing list
> [email protected]
> http://mailground.net/mailman/listinfo/exim-users
> 


-- 
Best wishes Victor Ustugov   mailto:[email protected]
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC

_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить