The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема с Exim + MS Exchange 2003."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема с Exim + MS Exchange 2003."  
Сообщение от Pep email(ok) on 07-Фев-07, 18:50 
Доброго времени суток!

Что есть. FreeBSD 6.1: Exim-4.66+openldap-client-2.3.33. Exim собран с поддержкой openldap. Exim принимает почту для группы доменов и роутит ее на MSE2003. Все замечательно, но много левых писем со спамом.
Хочу сделать проверку получателей в AD.

Воспользовался http://www.exim.org/eximwiki/MsExchangeAddressVerification
(Оригинал: http://www.exim.org/mail-archives/exim-users/Week-of-Mon-20040816/msg00119.html )

Настройки сделал соответственно хауту на сайте exim'а.
Завел соответствующего пользователя в AD (ldap, пароль ldap123) с минимальными правами.
Результат: верификация пользователя не проходит.
В mainlog'е:
2007-02-06 23:14:01 1HEWhV-0002Qr-7c == cooluser@my.domen.ru R=adsi_check defer (-1): failed to expand "${lookup ldap {user="CN=ldap,OU=Users,DC=my,DC=domen,DC=ru" pass=xxxxxxxxx ldap:///"DC=my,DC=domen,DC=ru"?mail?sub?(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}}))}{${local_part}@${domain}}{:fail: User unknown}}": lookup of "user="CN=ldap,OU=Users,DC=my,DC=domen,DC=ru" pass="ldap123" ldap:///"DC=my,DC=domen,DC=ru"?mail?sub?(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:cooluser@my.domen.ru))" gave DEFER: failed to bind the LDAP connection to server 192.168.0.1 - LDAP error 49: Invalid credentials

Т.е., как я понял, запросы к серверу не проходят.
Тем не менее, с консоли FreeBSD-сервера, сервер с AD виден и отвечает на вопросы:
ldapsearch -D ldap -w ldap123 -LLL "(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:cooluser@my.domen.ru))"
Вся инфа прекрасно видна.

Прошу совета...укажите где грабли :)
Я прекрасно понимаю, что, да, можно вести базу получателей в постгрессе или мускуле, но у меня есть, то что есть и хочется заставить это работать.
На одном из форумов коллега предложил скрипт (при помощи ldapsearch), который несколько раз в сутки будет забирать юзеров из AD и складировать в файле, который потом Exim отпарсит... Схема неплохая - нагрузка на контроллер меньше...
Но все-таки хочется без костыликов ;)

WBR, Pep.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема с Exim + MS Exchange 2003."  
Сообщение от L.Torvalds on 08-Фев-07, 03:17 
>Прошу совета...укажите где грабли :)

Классика, коллега, классика! Вы невнимательно читали статьи, а потом еще более невнимательно мучали AD (ADUC'ом кстати неудобно :)

Практически 100% что Вы не меняли Schema вашего AD - значит такого dn не существует :) "CN=ldap,OU=Users,DC=my,DC=domen,DC=ru"

Чтобы не мучать подскажу сразу (хотя админская мудрость гласит - дай человеку потра^w^w^w^w разобраться :) Попробуйте всместо OU=Users - CN=Users ... это хоть и LDAP но - M$ LDAP :)))

GR.
gr на patoka где-то в ca

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема с Exim + MS Exchange 2003."  
Сообщение от bass (??) on 08-Фев-07, 06:21 
>>Прошу совета...укажите где грабли :)
>
>Классика, коллега, классика! Вы невнимательно читали статьи, а потом еще более невнимательно
>мучали AD (ADUC'ом кстати неудобно :)
>
>Практически 100% что Вы не меняли Schema вашего AD - значит такого
>dn не существует :) "CN=ldap,OU=Users,DC=my,DC=domen,DC=ru"
>
>Чтобы не мучать подскажу сразу (хотя админская мудрость гласит - дай человеку
>потра^w^w^w^w разобраться :) Попробуйте всместо OU=Users - CN=Users ... это хоть
>и LDAP но - M$ LDAP :)))
>
>GR.
>gr на patoka где-то в ca

названия объектов в хранилище ни на что не влияют :)

Теперь по запросу:

Invalid credentials говорит о неправильно составленном запросе

"${lookup ldap {user="CN=ldap,OU=Users,DC=my,DC=domen,DC=ru" pass=xxxxxxxxx ldap:///"DC=my,DC=domen,DC=ru"?mail?sub?\
(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))\
(proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}}))}{${local_part}@${domain}}{:fail: User unknown}}

Это из лога,и синтаксис перегружен кавычками. Покажите лучше из конфига роутер целиком.

Также мне непонятна логика запроса. Если мы ищем именно по proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}} (а не по почтовому адресу что логичнее) то почему не возвращаем $value (результат поиска mail указанный в"DC=my,DC=domen,DC=ru"?mail?sub? ) а исходный {local_part}@${domain}}?

Скажите  на словах что нужно конкретно и на каких условиях поиска.

Например простой поиск по ldap будет выглядеть так:
router_blabla:
driver = accept                                                                                                    
condition = ${lookup ldap {ldap:///dc=my,dc=domen,dc=ru?mail?sub?\
(&(objectClass=publicFolder)(mail=${local_part}@${domain}))}{$value} fail}
cannot_route_message = User unknown

Видите, поиск по ldap должен возвратить ?mail? -> $value и если нет, то fail

Попробуйте заставить конструкцию работать с минимальными условиями поиска. Затем поиск усложните.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема с Exim + MS Exchange 2003."  
Сообщение от L.Torvalds on 08-Фев-07, 07:18 
>названия объектов в хранилище ни на что не влияют :)

Bass - специально для вас - медленно:
по дефолту настроенный AD не содержит
OU=Users,dc=domain,dc=ru, зато содержит:
CN=Users,dc-domain,dc=ru

Если и сейчас не поняли - я пасс :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Проблема с Exim + MS Exchange 2003."  
Сообщение от bass (??) on 08-Фев-07, 07:57 
>>названия объектов в хранилище ни на что не влияют :)
>
>Bass - специально для вас - медленно:
>по дефолту настроенный AD не содержит
>OU=Users,dc=domain,dc=ru, зато содержит:
>CN=Users,dc-domain,dc=ru
>
>Если и сейчас не поняли - я пасс :)

Я понял, что вы имели ввиду лишь ошибку спрашивающего в описании атрибутов.
Подумал же об утверждении, что движок поиска в AD привязан к атрибутам.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Проблема с Exim + MS Exchange 2003."  
Сообщение от Pep email(ok) on 08-Фев-07, 17:26 
Доброго времени суток, bass.

>
>Это из лога,и синтаксис перегружен кавычками. Покажите лучше из конфига роутер целиком.
>

Привожу кусок конфига, который копипаст с сайта exim'a.
ldap_default_servers = 192.168.1.249::3268

LDAP_AD_BINDDN = "cn=ldap,ou=Users,dc=my,dc=domen,dc=ru"
LDAP_AD_PASS = "ldap123"
LDAP_AD_BASE_DN = "dc=my,dc=domen,dc=ru"
LDAP_AD_MAIL_RCPT = \
user=LDAP_AD_BINDDN \
pass=LDAP_AD_PASS \
ldap:///LDAP_AD_BASE_DN?mail?sub?\
(&(|(objectClass=user)(objectClass=group))\
(proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}}))

Роутер:
tut_check:
driver = redirect
data = ${lookup ldap {LDAP_AD_MAIL_RCPT}\
  {${local_part}@${domain}}{:fail: User unknown}}
domains = +relay_to_domains
allow_fail
allow_defer
forbid_file
forbid_pipe
verify_recipient
redirect_router = tut_router

tut_router:
driver = manualroute
domains = +relay_to_domains
route_list = !+local_domains 192.168.1.1
transport = remote_smtp

Включил дебагмод на эксиме. Малый кусок:

1710 after ldap_url_parse: host=192.168.1.249 port=3268
1710 ldap_initialize with URL ldap://192.168.1.249:3268/
1710 initialized for LDAP (v3) server 192.168.1.249:3268
1710 LDAP_OPT_X_TLS_TRY set
1710 binding with user=cn=ldap,ou=Users,dc=my,dc=domen,dc=ru password=ldap123
1710 failed to bind the LDAP connection to server 192.168.1.249:3268 - LDAP error 49: Invalid credentials


>
>Также мне непонятна логика запроса. Если мы ищем именно по proxyAddresses=SMTP:${quote_ldap:${local_part}@${domain}} (а
>не по почтовому адресу что логичнее) то почему не возвращаем $value
>(результат поиска mail указанный в"DC=my,DC=domen,DC=ru"?mail?sub? ) а исходный {local_part}@${domain}}?
>
>Скажите  на словах что нужно конкретно и на каких условиях поиска.

Нужно, чтобы ексим проверял адрес получателя в AD.
Пока что-то туго выходит :)
>
>

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Проблема с Exim + MS Exchange 2003."  
Сообщение от Pep email(ok) on 08-Фев-07, 17:28 
>>Прошу совета...укажите где грабли :)
>
>Классика, коллега, классика! Вы невнимательно читали статьи, а потом еще более невнимательно
>мучали AD (ADUC'ом кстати неудобно :)
>
>Практически 100% что Вы не меняли Schema вашего AD - значит такого
>dn не существует :) "CN=ldap,OU=Users,DC=my,DC=domen,DC=ru"
>
>Чтобы не мучать подскажу сразу (хотя админская мудрость гласит - дай человеку
>потра^w^w^w^w разобраться :) Попробуйте всместо OU=Users - CN=Users ... это хоть
>и LDAP но - M$ LDAP :)))

Большое спасибо за совет, но не помогло :(
Так что "потра^w^w^w^w" и стараюсь разобраться :)

WBR, Pep.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Проблема с Exim + MS Exchange 2003."  
Сообщение от Pep email(ok) on 08-Фев-07, 18:30 
Доброго времени суток!

Большое спасибо bass'у и L.Torvalds'у :)
Проблема решена. Дело было в "кривом" запросе к AD.
После изменения user="cn=ldap,ou=Users,dc=my,dc=domen,dc=ru" на user=ldap, AD стал отвечать на вопросы :)
Хотя, имхо, вариант user="cn=ldap,ou=Users,dc=my,dc=domen,dc=ru" выглядит логичным и правильным...

WBR, Pep.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру