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

postfix, dovecot, dovecot-sasl, ldap и статические UID для общего хранилища электронной почты NFS

Я пытаюсь создать почтовый сервер Ubuntu 12.04 как таковой.

Обязательно: аутентификация на существующем сервере Open-LDAP. Хранилище в Maildirs на существующем сервере NFS, все принадлежит 8: 8 (mail: mail). Auth требуется для smtp и imap.

Должен (я думаю): Postfix с использованием Dovecot SASL.

Все работает нормально, за исключением случаев, когда я использую ldap для userdb:

userdb {
driver = ldap
args = /etc/dovecot/ldap-userdb.conf.ext
}

... тогда файлы maildir читаются / записываются как UID: GID из LDAP. Но почта должна принадлежать 8: 8 (из-за других почтовых серверов), я получаю такие ошибки, как:

Error: open(/var/mail/...) ...
 failed: Permission denied (euid=1193(<...>) egid=555(<...>) missing +r perm
.... dir owned by 8:8 ...

но если я использую статический userdb:

userdb {
 driver = static
 args = uid=8 gid=8 home=/var/mail/%u
}

... затем при отправке почты от одного пользователя ldap другому пользователю ldap на новом почтовом сервере я получаю сообщение об ошибке: (отправка электронной почты на timmytester@domain.com)

postfix/local[32371]: C6F7561735: to=<timmytester@domain.com>, 
 relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.1.1, 
 status=bounced (unknown user: "timmytester")

... но отправка электронной почты за пределы локальных доменов работает нормально.

Мне кажется, что использование static userdb мешает Dovecot предоставлять SASL. Поэтому я попытался просто вставить 8: 8 в конфигурацию userdb ldap: (я использую тот же файл конфигурации для passdb и userdb для ldap, с символической ссылкой)

uris = ldap://ldapserver.domain.com
 dn = cn=admin,dc=domain,dc=COM
 dnpass = secretPW
 auth_bind = no
 ldap_version = 3
 base = ou=Users, dc=DOMAIN, dc=COM
 pass_attrs = uid=user,userPassword=password

 user_attrs = uid=8,gid=8 # <--- here i tried to cheat.

 pass_filter = (&(objectClass=mailUser)(|(mailDestination=%u)(uid=%n)))
 default_pass_scheme = SSHA

... и это повторяет статическую проблему userdb. Неизвестный пользователь. Но, по крайней мере, мне кажется, что здесь я МОГУ выполнять статические задания.

Если бы моя почта могла принадлежать настоящему uid: gid, я был бы в порядке. Виртуальные пользователи Postfix, виртуальные домены и все такое вроде в порядке. Когда Dovecot идет 8: 8, postfix получает плохие ответы SASL? Чтобы было ясно, проблема доступа к файлам исчезает, когда я использую статический uid: gid. И проблема с неизвестным пользователем исчезает, когда я перехожу на обычный ldap userdb. Я даже могу chmod 777 maildir и все будет в порядке, пока новое письмо не будет обработано старым почтовым сервером и сохранено как 600.

Нужно ли мне использовать другой пакет SASL? Или я могу заставить dovecot делать доступ к файлам 8: 8, все еще делая postfix счастливым?