В моем запросе меня все устраивает. И возвращает он нужное мне значение. Сейчас
проблема только в том, что мой роутер
ad_redirect_router:
driver = redirect
domains = +relay_to_domains
data = ${lookup ldap {MS_RCPT}}
Не хочет перенаправлять почту на результат запроса.
ACL показывает, что все нормально:
warn set acl_c1 = ${lookup ldap {MS_RCPT}}
logwrite = Follow to $acl_c1
2011-09-14 16:07:56 Follow to [email protected]
14 сентября 2011, 15:05 от Kosenko Sergey E. <[email protected]>:
> Добрый день,
>
> Вот рабочий LDAP запрос. Имя пользователя от, имени которого проверяется
> адрес в AD, должен указываться в полном виде:
>
> ldap_default_servers = Имя_сервера(или IP):3268
>
> LDAP_AD_BINDDN = "CN=Имя Пользователя,DC=domain,DC=local" // имя
> пользователя от имени которого делается запрос в AD
> LDAP_AD_PASS = "Пароль"
> LDAP_AD_BASE_DN = ${quote_ldap:DC=domain,DC=local}
>
> LDAP_AD_MAIL_RCPT = \
> user=LDAP_AD_BINDDN \
> pass=LDAP_AD_PASS \
> ldap:///LDAP_AD_BASE_DN\
> ?mail?sub?\
> (&\
> (|\
> (objectClass=user)\
> (objectClass=publicFolder)\
> (objectClass=group)\
> )\
> (proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}})\
> )
>
> Возможно, что у Вас пользователь сидит в каком то контейнере (в AD по
> умолчанию пользователи помещаются в контейнер "Users"), тогда имя
> пользователя будет:
> LDAP_AD_BINDDN = "CN=Имя Пользователя,CN=Users,DC=domain,DC=local"
>
> Кроме того нужно обратить внимание на язык. Если контроллер домена русский,
> то, возможно, и контейнеры будут именоваться по русски.
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of An An
> Sent: Wednesday, September 14, 2011 1:19 PM
> To: Exim MTA на русском
> Subject: Re: [Exim-users] Invalid credential при lookup ldap
>
> С 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
>
> _______________________________________________
> 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