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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Anton Lysenok
проходил мимо
Сообщения: 1
Зарегистрирован: 2008-10-12 12:54:29

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

Непрочитанное сообщение Anton Lysenok » 2009-06-11 13:23:59

Есть домен на самбе. Самба хранит учетки и прочую хрень в 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 минут.

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

masterhide
рядовой
Сообщения: 13
Зарегистрирован: 2009-06-03 8:45:57

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

Непрочитанное сообщение masterhide » 2009-06-25 9:09:18

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