Назад | Перейти на главную страницу

Настройка виртуального домена на основе LDAP для Dovecot

У меня есть комбинированная установка демона Postfix + Dovecot на почтовом сервере (назовем его сервером M), который поддерживает виртуальные домены и поиск пользователей на сервере LDAP (назовем его сервером D). Прямо сейчас я настроил Postfix для доставки почты специально созданному локальному пользователю на сервере M для хранения почты для всех виртуальных пользователей, поэтому почтовый каталог для пользователя находится в формате / home / vmail / <domain > / <идентификатор пользователя>.

В этом случае я также настроил Dovecot для получения почты из каталога пользователя:

userdb static {
    args = uid=501 gid=501 home=/home/vmail/%d/%n
}

Поиск пароля:

passdb ldap {
    args = /etc/dovecot-ldap.conf
}

при этом указанный файл конфигурации содержит следующее:

hosts = server M
base = dc=www,dc=example,dc=com
ldap_version = 3
auth_bind = yes
pass_filter = (mail=%u)

Теперь эта конфигурация работает (класс объекта LDAP реализован в inetOrgPerson), но когда я добавил класс объекта posixAccount в запись пользователя на сервере M, Dovecot перестала распознавать пользователя в формате user @ domain.

Проверка журналов почты показывает, что Dovecot каким-то образом распознает пользователя как «user» вместо «user @ domain», и, таким образом, моя директива userdb вернула / home / vmail // user вместо / home / vmail / domain / user

Как мне изменить мою конфигурацию, чтобы Dovecot снова распознал пользователя как «user @ domain»?

Нашел ответ!

По сути, чтобы Dovecot распознал пользователя как «user @ domain» после аутентификации, выполняемой путем добавления:

pass_attrs = mail=user

Это заставляет Dovecot распознавать пользователя по атрибуту почты в LDAP. Поскольку формат поля - «пользователь @ домен», Dovecot принимает пользователя как «пользователь @ домен».

Мне кажется ложь блок passdb passwd-file {...} или, возможно, аналогичный блок userdb имеет приоритет над блоком passdb ldap