[exim-conf] плавная миграция пользователей в Exchange (Active Directory)

Victor Ustugov victor на corvax.kiev.ua
Ср Сен 14 11:47:58 EEST 2011


приветствую

вчера встала задача на дружественном сервере реализовать доставку почты
в ходе постепенной миграции пользователей из mysql базы на FreeBSD в
Active Directory.

т. е. внутри локалки был поднят Exchange, exim должен был по-прежнему
принимать почту из внешнего мира, проверять существование пользователя,
после чего маршрутизировать почту внутрь сети на Exchange.

нюанс состоял в том, что пользователи переносились в AD постепенно. т.
е. с точки зрения exim часть пользователей локального домена были
нелокальными.

для решения данной задачи такой вот доставки в рамках паровоза в
mailertable были добавлены две строки:

*@domain.tld : ${lookup ldap{user="ldapsearch на ad.domain.tld"
pass="xxxxxxxx"
ldap://10.0.0.1/dc=ad,dc=domain,dc=tld?proxyAddresses?sub?(proxyAddresses=smtp:${quote_ldap:$local_part@$domain})}{smtp:10.0.0.2}{virt:$local_part@$domain}}

domain.tld|callout : ${lookup ldap{user="ldapsearch на ad.domain.tld"
pass="xxxxxxxx"
ldap://10.0.0.1/dc=ad,dc=domain,dc=tld?proxyAddresses?sub?(proxyAddresses=smtp:${quote_ldap:$local_part@$domain})}{smtp:10.0.0.2}{virt:$local_part@$domain}}


здесь domain.tld - это наш частично локальный домен
ad.domain.tld - доменная зона домена windows
ldapsearch - доменный пользователь с правами на чтение из AD данных о
пользователях
10.0.0.1 - адрес хоста домен контроллера
10.0.0.2 - адрес хоста с Exchange

первая запись используется при принятии решения о маршруте доставки
письма (корректность выбора маршрута проверяется с помощью exim -bt)
вторая запись использутся при verify = recipient (корректность выбора
маршрута проверяется с помощью exim -d -bv)

для решения данной задачи потребовалась реализация экспандинга
результатов запросов в mailertable, для чего в deliveries/mailertable.m4
в LOOKUP_MAILERTABLE_TEXT и LOOKUP_CALLOUTTABLE_TEXT было добавлено
опциональное использование ${expand:

т. е. данная конструкция будет работать только если в качестве значения
confMAILERTABLE используется TEXT


p. s. сегодня практически такой же вопрос был поднят в
exim-users на mailground.net:
http://mailground.net/pipermail/exim-users/2011-September/000486.html

но там все застряло еще на этапе авторизации при выполнении LDAP запроса

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




Подробная информация о списке рассылки exim-conf