sendmail + виртуальные пользователи из AD

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
askon
рядовой
Сообщения: 11
Зарегистрирован: 2007-03-20 19:51:03

sendmail + виртуальные пользователи из AD

Непрочитанное сообщение askon » 2007-10-17 18:01:21

Есть один почтовый сервер с sendmail, все почтовые пользователи являются системными. Почтовик заведен в AD, настроен winbind, доменных пользователей видит как родных в виде DOMAIN\username. Запущен saslauthd который использует pam_winbind - всё работает отлично.
Захотелось сделать такое:
Убрать всех системных пользователей с почтовика, но не могу понять куда копать, чтоб прикрутить соответствие почтовых ящиков к доменным пользователям? Т.е. сейчас у меня например есть системный пользователь vasya_ok с адресом vasya_ok@domain.com, соответственно вся его почта сейчас ложится в /var/mail/vasya_ok (за это насколько я понимаю отвечает procmail). Если я удалю vasya_ok то при попытке отправить на vasya_ok@domain.com ессно получаю User unknown, если пытаюсь отправить на DOMAIN\vasya_ok@domain.com то sendmail не ругается(т.к. благодаря winbind пользователь такого вида для системы вроди как родной), а спокойно создает mbox /var/mail/DOMAINvasya_ok и ложит туда почту - это засада №1. Засада №2 заключается в процессе получить эту почту - для раздачи сейчас у меня popa3d к которому также прикручен pam_winbind, pop3 сессия открывается для доменного пользователя DOMAIN\username без проблем, вот только почтовый ящик для него ищется соответственно в /var/mail/DOMAIN\\username. Засада №3 заключается в том, что в AD у меня несколько доменов - использование winbind use default domain отпадает, причем имена пользователей могут пересекаться в разных доменов, т.е. DOMAIN1\username и DOMAIN3\username - это совершенно разные пользователи, посему то, что читал о прикручивании LDAP не очень подходит, ибо не лежат у меня все доменные пользователи в одной OU какой-нить :(
Пробовал сделать на самом примитивном уровне - сделал virtusertable вида:
vasya_ok@domain.com DOMAIN\vasya_ok
"\" - sendmail вообще игнорирует.
Вторую неделю бьюсь над этим вопросом пока безрезультатно, любые идеи приветствуются.

P.S. Поставить postfix или exim вместо sendmail пока не представляется возможным.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение Alex Keda » 2007-10-17 19:21:39

в настройках samba можно прописать опцию, чтобы юзеры виделись без домена.
точно скажу завтра, если никто не вспомнит...
Убей их всех! Бог потом рассортирует...

askon
рядовой
Сообщения: 11
Зарегистрирован: 2007-03-20 19:51:03

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение askon » 2007-10-17 22:31:40

Код: Выделить всё

winbind use default domain = yes
Вроди для бездоменности, тогда она автоматом значение из workgroup подставляет, для ads это и есть дефолтовый домен, но домен-то не один...или я чего-то недопонял?

У меня корневой домен ROOT_DOMAIN в него введен почтовик, все юзера в своих отдельных доменах DOMAIN, DOMAIN1 и т.п. для винды это выглядит как username@domain.root_domain (это не почтовый адрес).

smertnik
рядовой
Сообщения: 27
Зарегистрирован: 2007-09-29 9:38:03

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение smertnik » 2007-10-18 9:29:49

askon писал(а): LDAP не очень подходит, ибо не лежат у меня все доменные пользователи в одной OU какой-нить :(
ммм, у меня конечно чуть другая задача была, проверить наличие данного адреса в AD, но LDAP у меня проходит все уровни, начиная с 0 (посмотри в сторону фильтров и диапазонов выборки sub, one, base), хотя это не очень со стороны быстродействия, но работает.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение Alex Keda » 2007-10-18 9:30:56

smertnik писал(а):
askon писал(а): LDAP не очень подходит, ибо не лежат у меня все доменные пользователи в одной OU какой-нить :(
ммм, у меня конечно чуть другая задача была, проверить наличие данного адреса в AD, но LDAP у меня проходит все уровни, начиная с 0 (посмотри в сторону фильтров и диапазонов выборки sub, one, base), хотя это не очень со стороны быстродействия, но работает.
нука расскажите про фильтры?
а то я тоже кроме конкретного OU искать не умею.
правда, логика построена всё равно на этом, но всё же...
Убей их всех! Бог потом рассортирует...

smertnik
рядовой
Сообщения: 27
Зарегистрирован: 2007-09-29 9:38:03

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение smertnik » 2007-10-18 9:59:41

Ну к примеру:

Код: Выделить всё

ldapsearch -L -x -D "CN=Sendmail,OU=Sendmail,
      DC=mydomain,DC=ru" -w "password" -h "192.168.0.1" -p 389 -s sub -b 
      "DC=MYDOMAIN,DC=RU" -d "0" "(&(|(objectclass=user)
      (objectclass=group))(proxyAddresses=smtp:myname@mydomain.ru))"]
-s sub   ------  -s scope   one of base, one, sub or children (search scope)  
Запрос полностью рабочий, для проверки Нужно создать подразделение Sendmail и пользователя Sendmail  (CN=Sendmail,OU=Sendmail)
Собственно в какой бы OU не был пользователь в домене, инфа по нему будет найдена.

askon
рядовой
Сообщения: 11
Зарегистрирован: 2007-03-20 19:51:03

Re: sendmail + виртуальные пользователи из AD

Непрочитанное сообщение askon » 2007-10-18 10:42:54

Доменное дерево достаточно большое, почтовых пользователей ~1000 - т.е. обмен достаточно интенсивный идет, мне кажется для каждого телодвижения делать поиск по всему дереву - плохая идея. С некоторых машин доменных у меня в день по 1500 отправок почты и по 20к запросов к POP3. Плюс когда просто прикручивал ради эксперимента saslauthd через ldap наткнулся на то, что запросы к DC гуляют практически открытым текстом, как вариант дополнительно SSL к DC прикручивать надо, да и не умеет sasl кешировать ответы сам (поправьте, если ошибаюсь). Щас прикручен kerberos и winbind - т.е. фактически инфа о пользователи в открытую нигде не передается, winbind кеширует ответ, чтоб лишний раз DC не терзать. Как мне видеться идеальным решением было бы поставить exchange сервер внутри, который с AD интегрируется, а фронтендом для него оставить sendmail - тут правда возможны проблемы с bounce messages.
Пока мне так мыслиться самое простое было бы составить статические таблицы соответствия email <--> доменное имя, хрен с ними если в ручную менять/добавлять - не так часто у меня новые пользователи появляются, но вот пароли они себе меняют достаточно часто, а сейчас получается, что для отправки через SMTP юзер использует свой доменный пароль, а для получения по POP3 должен помнить юниксовый + он его без меня никак не сменит, а нынче у юзеров память маленькая пошла, два пароля уже не все в силах упомнить.. :(
В принципе если заставить sendmail ложить приходящую почту куда мне надо, это пол беды, её еще как-то надо забирать оттуда с доменной авторизацией, т.е. снова нужно как-то задать, что почта юзера DOMAIN\user лежит в /var/mail/DOMAIN\\user или в /home/DOMAIN/user/mail....совсем запутался :?