Я уже нашел проблему(скобка лишняя) и ldap заброс отлично отрабатывает. Но
только не роутеры:
ad_redirect_router:
<------>driver = redirect
<------>domains = +relay_to_domains
<------>data = ${lookup ldap {MS_RCPT}}
ad_relay_router:
<------>driver = "manualroute"
<------>domains = MS_DOMAIN
<------>transport = remote_smtp
<------>route_list = * 192.168.128.61
<------>no_more
Проверяю exim -bt [email protected] и вижу, что ad_redirect_router не
отрабатывает. Хотя результатом запроса должен быть [email protected].
Я решил накладывать фильтр по mail.
14 сентября 2011, 14:36 от Victor Ustugov <[email protected]>:
> 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
>
>
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users