Страница 1 из 1

Dovecot+LDAP: проверка членства в группе

Добавлено: 2009-06-11 13:23:59
Anton Lysenok
Есть домен на самбе. Самба хранит учетки и прочую хрень в LDAP.
Решил настроить почту на dovecot'e с авторизацией по LDAP.
В итоге все работает, проблем никаких, т.е. логин и пароль соответствуют паролю на вход в доменный комп.
Теперь нужно сделать так, чтобы доступ к почте был не у всех юзеров.
--
Создал группу mail в LDAP, накидал юзеров, читаю dovecot-ldap.conf. никаких опций по проверке членства в группе не нахожу, есть только лдаповские фильтры.

Фильтры - вещь полезная, например, прописать бы туда (&(objectClass=user)(memberOf=mail)), да вот проблема - это в Active Directory членство в группах "пишется в юзера" а в самбе:

Код: Выделить всё

dn: cn=mail,ou=groups,dc=firma,dc=dom
objectClass: posixGroup
cn: mail
gidNumber: 10004
description: Group account
memberUid: bart

dn: uid=bart,ou=users,dc=firma,dc=dom
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: sambaSamAccount
cn: bart
sn: bart
uid: bart
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/bart
loginShell: /sbin/nologin
gecos: bart
description: User account
sambaSID: S-1-5-21-1067726081-1325992449-2434621533-1001
displayName: bart
sambaNTPassword: DCC2C5D54B607CAAE655F1E4E9611812
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
 00000000
sambaAcctFlags: [U          ]
sambaPwdLastSet: 1244705465
Видно, что в самбе членство в группе хранится в самом обьекте группы (memberUid: bart).

Как пустить на почту только нужных юзеров?

Придумал несколько вариантов, но мне они кажутся не очень рациональными:

1. Не заморачиваться, создать вообще отдельную OU, там создавать для каждого ящика свой обьект с типом objectClass=mailbox и прописать в конфиг довекота (objectClass=mailbox). Да вот только пароли на вход в комп и на ящик будут разными. Написать небольшой синхронизатор пароля? (при смене пароля на вход автоматически меняется пароль на ящик) - не попахивает ли геморроем? :-D
2. Наваять скрипт. Алгоритм следующий - коннектимсо к LDAP, тянетсо массив атрибутов memberUid обьекта mail, перебираетсо массив, на основе которого генерится файл для userdb. (passdb мне не нужен - через ldap средствами dovecot меня в данном случае полностью устраивает). Скрипт в крон на каждые 5 минут.

Короче, второй способ мне пока нравится больше всего, но если кто-то зарешал подобное другим способом, прошу отписаться

Re: Dovecot+LDAP: проверка членства в группе

Добавлено: 2009-06-25 9:09:18
masterhide
Можно сделать чтобы фильтр в dovecot-ldap.conf выдергивал не имя юзера из базы ldap, а искал только по полю mail, соотеветственно если у юзера не заведена запись mail, то доступа к почте не будет, а пароли будут одинаковые и на вход в домен и на почту или надо чтобы еще и имя юзера было одинаковое?