Я пытаюсь создать почтовый сервер 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 счастливым?