С 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




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

Ответить