LINUX.ORG.RU
ФорумAdmin

sendmail + LDAP + courier-imap


0

0

Привет Всем !

Народ, может кто нибудь написать, как нужно объяснить sendmail'у, что пользователи описаны в LDAP'е, и нет локальных (/etc/passwd). Я что-то немогу понять, как это настроить в sendmail'е. :-((((

И еще, скажите у кого-то работает связка LDAP + sendmail + courier-imap. Если работает отзовитесь пожалуйста.

Спасибо.


Дополнение, все пользовтаели в LDAP'е, при отправке на этого пользователя письма выдается в логе, что User unknown.

При этом в sendmail.mc: FEATURE(`ldap_routing',,,`bounce',`preserve') define(`confLDAP_DEFAULT_SPEC',`-h localhost -b ou=users,...') LDAPROUTE_DOMAIN(`domain.ru') MAILER(`local')

Каким mailer'ом должна быть доставка в виртуальные почтовые ящики ?

Немогу понять, что нужно, еще подкрутить. :-((((

Спасибо.

Milord
() автор топика
Ответ на: комментарий от anonymous

Я конечно верю, что это все рабоатет, что описано на http://andrek.ipsp.ru/mail/ Но мне нужно, что sendmail пересылал почту, для пользовтелей которых нет в /etc/passwd, они все у меня в LDAP. По указанной тобой ссылке, все пользователи почему-то дублируются, и в /etc/passwd и в LDAP. Зачем ? Это только нужно для работы в shell'е ?

Спасибо.

Milord
() автор топика
Ответ на: комментарий от Milord

Sendmail не будет лезть в /etc/passwd если снять флаг у локального
мейлера "w", он требуется для переброски сообщений, если к примеру
юзер перехал куда-нибудь, просто кладется файлик .forward в home
юзера с другим адресом куда делать форвард. Проще говоря, sendmail
ищет юзера в /etc/passwd, и если он найден, то ищет .forward в его
home директории, но вот если sendmail не нашел юзера, то он выдает
статус "User Unknown" и локальному мейлеру ничего не передается, если
снять флаг "w", то sendmail не будет делать эту процедуру, а просто
скинет сообщение в очередь локальному мейлеру, который затем его
обработает... Недостатки: Sendmail не сможет сразу ответить "User
Unknown", если такого пользователя нет в системе и примет сообщение,
однако в случае с LDAP, я не знаю, возможно sendmail делает такой
запрос в базу во всех случаях и может выдать такой статус не смотря
на настройки для локального мейлера...

McMCC ★★★
()
Ответ на: комментарий от McMCC

На сколько я понял LDAP routing используется только для маршрутизации почты, но не для окончательного приема. Если sendmail увидел в ldap-е, что принимать должен действительно он (т.е. без пересылки дальше), то про ldap на время можно забыть, это будет обычный прием на обычного локального пользователя.
Если этого пользователя нельзя найти с помощью NSS модулей, т.е. если он не является локальным (не важно где хранится его учетная запись - в ldap-е, в /etc/passwd, еще где-то), sendmail не будет принимать, скажет User unknown. Для того, чтоб он не говорил так, можно конечно снять флаг "w" с локального mailer-а, но тогда и сам mailer должен уметь обрабатывать таких "нелокальных" пользователей. Как я понял широко распространенный procmail не умеет напрямую смотреть в LDAP. В этом вся и проблема. Если найти/написать mailer, который будет уметь напрямую работать с LDAP, то проблема решится. Останется другая - sendmail будет принимать почту на любого user-а (даже на несуществующего), отвергаться она будет только после приема, при передаче локальному mailer-у. Это может привести к росту ненужного траффика, что не есть хорошо.
У меня в данный момент почтовые user-ы тоже хранятся в LDAP-е, но, несмотря на это, они все равно являются локальными - видными через nss_ldap. Таким образом их видит и sendmail, и procmail, и popa3d. Отличаются они от действительно локальных тем, что благодаря настройкам PAM другие службы их не видят. К сожалению другого решения проблемы имеющимися средствами я не нашел.

P.S. А проблема пока в том, что nss_ldap использует единые настройки для всех, кто к нему обращается. Не получается сделать так, чтоб одни службы видели одних локальных пользователей, а другие - других. Или я в чем-то не прав ?

spirit ★★★★★
()
Ответ на: комментарий от spirit

>На сколько я понял LDAP routing используется только для
>маршрутизации почты, но не для окончательного приема.

В 8.11.хх был только роутинг, а вот в 8.12.хх можно алиасесы
и другие таблицы засунуть, ну и авторизация конечно, в 8.13.хх еще
что-то появилось... Я образно объяснил, зачем лезет sendmail в
/etc/passwd, да, действительно, procmail нужно патчить для работы
с LDAP, но не вижу в этом трудностей, я в свое время делал такой патч
для работы с виртуальными пользователя, и даже под MySQL. Могу
скинуть патч на свой сайт, правда он работает только с файлом,
под MySQL куда-то засунул и не могу найти, аналогичный патч есть
для popa3d, на основе этих патчей можно прикрутить работу с LDAP...

McMCC ★★★
()
Ответ на: комментарий от McMCC

> а вот в 8.12.хх можно алиасесы и другие таблицы засунуть
Это понятно :-) но я говорил именно про ldap routing, а не про работу sendmail-а с ldap в целом.

> ну и авторизация конечно
Авторизация идет через SASL, а SASL напрямую общаться с LDAP по-моему не умеет (разве что через самописный аутентификатор).

А патчик - это дело хорошее, было бы не плохо увидеть :-)

spirit ★★★★★
()
Ответ на: комментарий от spirit

>А патчик - это дело хорошее, было бы не плохо увидеть :-)

Я тут собрал все, что нашел в архивах и скинул в один файл
http://mcmcc.bat.ru/mypatches/sendmail_virtmail_users_mcmcc.tar.bz2
Это полностью рабочая система, все виртуальные юзеры заносятся
в /etc/mail/virtpasswd, пароли хешируются в md5, так же есть пример
общего home для procmail'овских фильтров и конфигов для sendmail'а,
ну и утилиты, что бы заводить пользователей в консоли или через
веб. Вообщем, добавить работу с LDAP не проблема, так что дерзайте...

McMCC ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.