Автор Тема: Postfix + ldap  (Прочитано 1094 раз)

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #45 : 13 Декабрь 2018, 07:20:41 »
Спасибо за ответ, да еще и по существу, ныне редкость.
« Последнее редактирование: 13 Декабрь 2018, 09:31:06 от icom »

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #46 : 14 Декабрь 2018, 05:54:09 »
С postfix на данный момент основные вопросе решены, кроме того что права на логи dovecot пришлось 777 поставить;
А вот с dovecot возникли сложности, биндится к домену нормально, но вот фильтры и атрибуты...
pass_attrs =
pass_filter =
user_attrs =
user_filter =
Перечитал много всего в интернетах, но сколько статей столько и мнений, но вот конкретных описаний что и зачем не нашел, более того, почти все ссылаются на подключение к open ldap серверу, но не каталогу AD на windows. Более того, на сколько мне известно, AD не отдает пароля пользователя, а расположение почты у меня фиксировано /var/mail/mydomain где уже каталоги с пользователями. Что надо указать в этих параметрах в моем случае?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 401
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #47 : 14 Декабрь 2018, 09:40:00 »
Здравствуйте!

Разные параметры связаны с тем, что они настраивают разные разделы конфигурации dovecot: passdb и userdb (посмотрите мой пример настройки dovecot здесь). В разделе passdb настраиваются параметры аутентификации пользователей, а в разделе userdb -- параметры работы с файловой системой: расположение почтовых директорий, настроек, права доступа к файловой системе и т.п. Сведения в оба раздела можно брать из LDAP, а приведённые Вами параметры будут применяться к соответствующим разделам.

Часто аутентификацию проводят на основе сведений из какой-то БД, например, каталога LDAP, а почтовые директории настраивают так, чтобы к ним был доступ от имени одной и той же учётки UNIX (именно так сделано в примере, на который я ссылался выше). Тогда для passdb используется механизм соответствующей БД, а для userdb -- механизм static.

Теперь что касается AD.

Dovecot умеет делать просто колоссальное количество вещей и подстраиваться практически под любое окружение, поэтому для его оптимальной настройки желательно хорошо понимать своё окружение =) . Возможно, Вам совершенно необязательно цепляться к LDAP/AD в dovecot, поскольку в Linux уже настроена привязка к LDAP/AD для PAM/NSS, тогда проще и логичнее воспользоваться уже готовой привязкой и настроить аутентификацию dovecot через PAM.

Но можно и через LDAP. AD -- такой же каталог, так что особой разницы в настройках между подключением к OpenLDAP и AD нет. Из AD нельзя извлечь пароль, но это и не нужно: аутентификация проверяется методом выполнения операции Bind, то есть привязки к каталогу. Алгоритм такой:
1. Выполняется первое подключение к каталогу от имени учётной записи с правами доступа к AD (в настройках postfix Вы указывали её и её пароль в параметрах bind_dn/bind_pw, для dovecot аналогичные параметры dn/dnpass).
2. В рамках этого подключения ищется запись каталога, соответствующая фильтру pass_filter. В качестве фильтра можно использовать тот, который Вы применяли в query_filter для postfix, только вместо шаблона %u нужно поставить шаблон %n.
3. Если запись пользователя найдена, то предпринимается попытка повторной привязки (та самая операция Bind) к каталогу от имени этой найденной записи с тем паролем, который предоставил почтовый клиент. Если такая привязка (то есть аутентификация в каталоге) прошла без ошибок, то считается, что пользователь предоставил правильный пароль и доступ к почтовым директориям в файловой системе позволяется. Если же повторная привязка к каталогу завершилась ошибкой, то доступ к почтовым директориям не позволяется. Логика простая.

В Вашем случае будет примерно такая картина:
dovecot.conf:
passdb {
    driver = ldap
    args = /etc/dovecot/dovecot-ad-bind-auth.conf
}

/etc/dovecot/dovecot-ad-bind-auth.conf:
hosts = fdqn имя ближайшего контроллера
ldap_version = 3
dn = cn=учетка,cn=Users,dc=домен,dc=домен,dc=домен
dnpass = пароль
base = dc=домен, dc=домен, dc=домен
auth_bind = yes
pass_attrs = sAMAccountName=user
pass_filter = (&(objectClass=Person)(sAMAccountName=%n)(!(userAccountControl=66050)))

Что касается userdb, то тут нужно смотреть, как у вас устроена директория /var/mail/mydomain (поддиректории, права доступа к ним), но обычно механизма static вполне достаточно.

Егор

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #48 : 17 Декабрь 2018, 07:50:35 »
Еще раз премного благодарен, по вашей наводке нашел ошибку в конфиге, из-за невнимательности в файле auth-ldap.conf.ext дефолтное значение userdb не закоментировал, в итоге дважды определялось из-за чего не туда довекот смотрел.

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #49 : 18 Декабрь 2018, 10:07:49 »
Вопрос не по теме топика, но все же, где можно почитать про общие папки в dovecot, как я понял их называют namespaces, простым языком для новичков, желательно на русском?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 401
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #50 : 18 Декабрь 2018, 13:13:38 »
Вопрос не по теме топика, но все же, где можно почитать про общие папки в dovecot, как я понял их называют namespaces, простым языком для новичков, желательно на русском?

Я давно не занимался dovecot, но когда интересовался этими вопросами, самой толковой статьёй на русском языке мне показалась эта статья на сайте www.lissyara.su, найдёте там по поиску "Шаг 9". Общих папок настраивать не доводилось, так что попробуйте разобраться самостоятельно.

Егор

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #51 : 19 Декабрь 2018, 10:10:33 »
у него описано создание общих папок, что я сделал и по документации, но вот ни в документации пока не увидел и так не попадался вопрос, а как собственно на них должна приходить почта/раскладываться письма?

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #52 : 27 Декабрь 2018, 03:50:53 »
Раскладку можно сделать с помощью скриптов sieve

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #53 : 28 Декабрь 2018, 09:59:23 »
при попытке включить авторизацию для dovecot по ldap и mysql одновременно возникла проблема.
Как только просто устанавливаю модуль dovecot-mysql, при перезапуске сервиса ругается что не может загрузить библиотеку ldap:
Общий лог кота:
Dec 28 13:56:58 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Dec 28 13:57:01 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Dec 28 13:57:01 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so

Error.log
Dec 28 13:57:01 auth: Fatal: Couldn't load required plugin /usr/lib/dovecot/modules/auth/libauthdb_ldap.so: dlopen() failed: libnettle.so.6: failed to map segment from shared object
Dec 28 13:57:01 master: Error: service(auth): command startup failed, throttling for 2 secs

При это с postfix никаких проблем не возникло, смотрит ldap и mysql. Что может быть, у меня идеи быстро кончились?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 401
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #54 : 28 Декабрь 2018, 12:06:44 »
Здравствуйте!
У меня на Ubuntu 18.04 после установки dovecot-mysql (dovecot-ldap уже был установлен и настроен) dovecot запустился без ошибок, правда, аутентификацию в mysql я не настраивал.

А зачем вообще это нужно, раз у Вас пользователи в AD?

Егор

icom

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Postfix + ldap
« Ответ #55 : 28 Декабрь 2018, 12:24:42 »
у меня debian 9.6

Мне это нужно для общих папок, чтоб не создавать пользователя в AD. Например, у меня общая папка info, для внешних пользователей она выглядит как info@mydomain.ru, для postfix чтоб он принял я прописал его как пользователя в mysql и кучу альянсов на него для остальных глобальных общих папок. Postfix отдает его Dovecot, а тот не знает такого пользователя и письмо пошло в bounce, и ответ что нет такого пользователя. Хочу его туда куда и postfix отправить, чтоб если что-то менять то в одном месте, а там еще и mailman планируется он тоже в mysql живет.

Попробовал обновить dovecot до самой последней версии стабильной, ругается на другую библиотеку уже но суть та же; плюс еще заметил когда dovecot перезапускаю, ругань на библиотеки sasl, который нигде не использовался, может ошибка с этим связано, но так же не нашел откуда ноги растут.
дек 28 16:11:27 srvmail auth[19067]: unable to dlopen /usr/lib/x86_64-linux-gnu/sasl2/libdigestmd5.so: libcrypto.so.1.1: failed to map segment from shared object
дек 28 16:11:27 srvmail auth[19067]: unable to dlopen /usr/lib/x86_64-linux-gnu/sasl2/libntlm.so: libcrypto.so.1.1: failed to map segment from shared object
дек 28 16:11:27 srvmail auth[19067]: unable to dlopen /usr/lib/x86_64-linux-gnu/sasl2/libsasldb.so: /usr/lib/x86_64-linux-gnu/sasl2/libsasldb.so: failed to map segment from shared object
Опять же таки сколько не смотрел по ошибкам, у всех всегда есть расшифровка: нет прав доступа, нет самого файла, не хватает памяти и т.д. а тут failed и без расшифровки...
« Последнее редактирование: 28 Декабрь 2018, 12:26:44 от icom »