[exim-conf] патчи, связанные с обработкой ldap запросов, и новые сборки exim

Victor Ustugov victor на corvax.kiev.ua
Вт Фев 23 12:15:19 EET 2010


приветствую

на выходных переводил почтовую систему одной компании на хранение 
учетных записей почтовых пользователей и алиасов в Active Directory.

и только после окончания переноса я обнаружил, что при проблемах при 
выполнении ldap запросов к домен контроллеру exim прямо в SMTP сессию 
вываливает клиенту все выражение, которое не смог проэкспандить, со 
всеми ldap логинами и паролями.

в src/deliver.c в функции post_process_one реализована замена в таких 
ситуациях символов пароля на символ "x".

но тут есть две проблемы:

1. при обработке не всех сообщений, в которых содержатся ошибки с 
указанием ldap логинов и паролей, задействована функция post_process_one 
из src/deliver.c

2. в функции post_process_one из src/deliver.c на "x" заменяются символы 
толко первого пароля. а мне при обработке алиасов пришлось в роутере 
выполнять четыре ldap запроса.

т. о. пришлось написать два патча:
http://mta.org.ua/exim-4.69-conf/patches/exim-4.71-hide_ldap_pass/patch-src::hide_ldap_pass.patch
http://mta.org.ua/exim-4.69-conf/patches/exim-4.71-hide_ldap_error/patch-src::hide_ldap_error.patch

в patch-src::hide_ldap_pass.patch реализована замена на "x" символов 
всех ldap паролей в функции post_process_one из src/deliver.c, а также в 
двух местах в функции route_address из src/route.c.

в patch-src::hide_ldap_error.patch реализована замена всего сообщения в 
SMTP сессии на "Temporary internal error", т. к. информация о причинах 
ошибки будет помещена в mainlog и rejectlog, а полный текст 
синтаксической конструкции, которую не удалось вычислить, будет доступен 
в дебаговом выводе exim -bh


данные патчи взаимоисключающие. т. е. единовременно можно использовать 
толко один из них.


для использования данных патчей модифицирован механизм сборки порта exim 
под FreeBSD:
http://mta.org.ua/exim-4.69-conf/ports/exim-4.71/

для сборки exim с atch-src::hide_ldap_pass.patch необходимо в файл 
ports/exim-4.71/Makefile.local добавить строку

WITH_HIDE_LDAP_PASS=YES


для сборки exim с atch-src::hide_ldap_error.patch необходимо в файл 
ports/exim-4.71/Makefile.local добавить строку

WITH_HIDE_LDAP_ERROR=YES


для использования данных патчей модифицирован механизм сборки rpm'ов для 
RedHat/CentOS/Fedora:
http://mta.org.ua/exim-4.69-conf/redhat/exim-4.71-2.corvax/

для сборки exim с atch-src::hide_ldap_pass.patch необходимо в файл 
redhat/exim-4.71-2.corvax/Makefile.local добавить строку

RPMBUILD_OPTIONS+= --with hide_ldap_pass


для сборки exim с atch-src::hide_ldap_error.patch необходимо в файл 
redhat/exim-4.71-2.corvax/Makefile.local добавить строку

RPMBUILD_OPTIONS+= --with hide_ldap_error


сегодня собраны и выложены в yum рипозитарий http://mta.org.ua/updates 
бинарные пакеты для поддерживаемых версий Linux - RHEL4 i386, RHEL4 x64, 
CentOS 5.1, FC6, FC8, FC9.


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




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