Добрый день!
Настроил courier-imap с аутентификацией через LDAP.
Попытки забиндиться к базе LDAP через ldapsearch удаются для всех пользователей без исключения, но courier-imap почему-то аутентифицирует всего нескольких пользователей.Кто-нибудь еще с такой мистикой встречался?
как , как ты это сделал , расскажи плиз
Операционная система FreeBSD 4.9Настройки OpenLDAP
***************** slapd.conf *********************include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/nis.schemapidfile /var/run/slapd.pid
argsfile /var/run/slapd.argsaccess to dn="" by * read
access to *
by group="cn=admins,dc=xxx,dc=ru" write
by dn="cn=admin,dc=xxx,dc=ru" write
by * read
by anonymous auth
allow bind_v2database bdb
suffix "dc=xxx,dc=ru"
rootdn "cn=admin,dc=xxx,dc=ru"
rootpw asdfasdfasdfadsfdirectory /var/db/openldap-data
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
********************************************* ldap.conf ****************
BASE dc=xxx, dc=ru
URI ldap://127.0.0.1
******************************************Courier-imap
***************** authdaemonrc **************
authmodulelist="authldap"
authmodulelistorig="authcustom authcram authuserdb authldap authpam"
daemons=5
version=""
************************************************************************ ./authldaprc *************
LDAP_SERVER 127.0.0.1
LDAP_PORT 389LDAP_BASEDN dc=xxx, dc=ru
LDAP_TIMEOUT 5
LDAP_AUTHBIND 1LDAP_MAIL mail
LDAP_FILTER (objectClass=posixAccount)
LDAP_DOMAIN xxx.ru
LDAP_GLOB_UID mailnull
LDAP_GLOB_GID mailLDAP_HOMEDIR uid
LDAP_MAILROOT /var/mail
LDAP_FULLNAME cn
LDAP_DEREF never
LDAP_TLS 0
**************************************************** ./pop3d-ssl ***********
SSLPORT=995
SSLADDRESS=0
SSLPIDFILE=/var/run/pop3d-ssl.pid
POP3DSSLSTART=NO
POP3_STARTTLS=YESPOP3_TLS_REQUIRED=0
COURIERTLS=${bindir}/couriertls
TLS_STARTTLS_PROTOCOL=TLS1
TLS_CERTFILE=/etc/ssl/certs/xxx.crtTLS_VERIFYPEER=NONE
****************************************
Может вот это:
LDAP_CLEARPW clearPassword
LDAP_CRYPTPW userPassword
в authldaprc поможет....
>Может вот это:
>LDAP_CLEARPW clearPassword
>LDAP_CRYPTPW userPassword
>в authldaprc поможет....Включение LDAP_CRYPTPW не помогает, а не шифрованных паролей у меня в базе LDAP'a нет.
Хм...
У меня такое было в том случае, если есть несколько виртуальных
доменов и в них есть пользователи с одинаковым именем.
Помогла передача в качестве имени пользователя login@domain
Домен у меня один.
Версия OpenLDAP 2.1.22_2
Версия Courier-IMAP 2.1.2,1
а ldif(ы) показать можешь?
Причина проблемы была найдена.У нас courier-imap в качестве логина использует e-mail. Те люди, которые не могли пройти авторизацию, в базе LDAP имели две записи с одинаковым e-mail'ом.
Как и в большинстве случаев, проблему вызвал обычный недосмотр :(
ldifы покажи плиз или ссылку на доку дай.
24-ого вечером, скорее после 18.00, либо сюда выложу пяток записей из своих ldif'ов, либо сброшу ссылочку.>ldifы покажи плиз или ссылку на доку дай.
ждём-с
и еще у меня такой вопрос.
стоит сендмеил с прикрученным лдапом , заведён пользователь , никаких поп\имап сервисов нету...
-как узнать прикрутился ли лдап к сендмеилу и работает ли он....
-как узнать используется ли лдап, или сендмеил берёт запись из системы.
-что вообще используется при отправке писем ,пробывал отправить письмо с несуществующим пользователем в системе и в лдап базе, отправляется и доходит до места назначения.
#Корневая запись
# xxx, ru
dn: dc=xxx,dc=ru
objectClass: dcObject
objectClass: organization
dc:: KJJKLjkajdf=
o: XXX
description: XXX#Запись первой группы
#memberUid - члены группы
# group1, xxx, ru
dn: cn=group1,dc=xxx,dc=ru
objectClass: top
objectClass: posixGroup
cn: group1
gidNumber: 12900
memberUid: alexey
memberUid: sergey
memberUid: ivan#Запись второй группы
# group2, xxx, ru
dn: cn=group2,dc=xxx,dc=ru
objectClass: top
objectClass: posixGroup
cn: group2
gidNumber: 12500
memberUid: oleg
memberUid: konstantin
memberUid: iliya
memberUid: olga
memberUid: anna
memberUid: rita
memberUid: wildcat
memberUid: deemon
memberUid: leslie
memberUid: nansy#Член первой группы
# alexey, group1, xxx, ru
dn: uid=alexey,cn=group1,dc=xxx,dc=ru
uid: alexey
cn: alexey
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
userPassword:: adjJOIJlkadlkjPkvm=
loginShell: /usr/bin/csh
uidNumber: 5201
gidNumber: 12900
homeDirectory: /nethome/alexey
gecos: alexey
givenName: Alexey
sn: Linevskiy
ou: group1
mail: alexey@xxx.ru
telephoneNumber:# Член второй группы
# oleg, group2, xxx, ru
dn: uid=oleg,cn=group2,dc=xxx,dc=ru
uid: oleg
cn: oleg
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
userPassword:: adjJOIJlkadlkjPkvm=
loginShell: /usr/bin/csh
uidNumber: 5202
gidNumber: 12500
homeDirectory: /nethome/oleg
gecos: oleg
givenName: oleg
sn: Petrov
ou: group2
mail: oleg@xxx.ru
telephoneNumber:И так далее для остальных записей. Надеюсь, что тебе это поможет.
>и еще у меня такой вопрос.
>стоит сендмеил с прикрученным лдапом , заведён пользователь , никаких поп\имап сервисов
>нету...Самое простое что можно придумать, это отправить письмо пользователю который есть только в LDAP'е.
[ya@mail]$ telnet localhost 25
ehlo mail.xxx.rumail from: user@xxx.ru
250 OK
rcpt to: ldap_user@xxx.ru
250 Accepted
data
354 Enter message, ending with "." on a line by itself
;fjd
;afjd
;afjds
.
250 OK id=1AOM8T-0003QA-4IА затем посмотреть в /var/spool/mail/, или там где у тебя кладется почта,
есть ли тестовое письмо для данного пользователя.
>-как узнать прикрутился ли лдап к сендмеилу и работает ли он....
>-как узнать используется ли лдап, или сендмеил берёт запись из системы.Так правильно, ты ж SMTP аутентификацию не настраивал. Чего ж ему не доходить-то.
>-что вообще используется при отправке писем ,пробывал отправить письмо с несуществующим пользователем
>в системе и в лдап базе, отправляется и доходит до места
>назначения.
спасибо за всё , попробуй и кстати у меня в логах вот , что мелькает
Nov 23 21:33:18 xxx sendmail[9647]: hANIWjOk009647: SYSERR(root): ldap_init/ldap_bind failed to xxx.com in map ldapmra: Protocol error
Nov 23 21:33:18 xxx sendmail[9647]: hANIWjOk009647: SYSERR(root): ldap_init/ldap_bind failed to xxx.com in map ldapmh: Protocol error
Не за что.
В логах говорится, что клиент и сервер используют разные версии LDAP протокола.
Посмотри где в sendmail'e выставляется версия протокола LDAP и поиграйся
с ней (значения будут 2 либо 3).>спасибо за всё , попробуй и кстати у меня в логах вот
>, что мелькает
>Nov 23 21:33:18 xxx sendmail[9647]: hANIWjOk009647: SYSERR(root): ldap_init/ldap_bind failed to xxx.com in
>map ldapmra: Protocol error
>Nov 23 21:33:18 xxx sendmail[9647]: hANIWjOk009647: SYSERR(root): ldap_init/ldap_bind failed to xxx.com in
>map ldapmh: Protocol error
у меня еще вопрос :)из того , что ты мне запостил...
1)зачем gid и memberUid или ты пускаешь пользователей в систему тоже через лдап и они у тебя имеют соответственно и доступ к мылу?
2)userPassword он и для системы и для мыла?
3)а как сделать , чтоб пароль системный пересекался и не пересекался с мыльным ? ( всё в лдапе )...
и еще вопрос :(((
в site.m4.config надо указывать лдап или сасл ?
и в конфиге сендмеила confLOCAL_MAILER cyrus или лдап?
ВООБЩЕМ ЧТО МНЕ ПОЧИТАТЬ НА ЭТУ ТЕМУ? :)
>у меня еще вопрос :)
>
>из того , что ты мне запостил...
>1)зачем gid и memberUid или ты пускаешь пользователей в систему тоже через
>лдап и они у тебя имеют соответственно и доступ к мылу?
>
>2)userPassword он и для системы и для мыла?
>3)а как сделать , чтоб пароль системный пересекался и не пересекался с
>мыльным ? ( всё в лдапе )...Да, пользователи у нас имеют доступ и к почте и к системе по одному паролю из userPassword.
Пароли для мыла и для системы можно сделать разными, например, если ты делаешь домен через самбу, то подключаешь схему самбы, говоришь, что твой пользователь также является объектом sambaSamAccount и в поле sambaLMPassword запихиваешь пароль для системы. Почте говоришь что пароль лежит в userPassword, а системе в sambaLMPassword.
Это был пример, можно сделать совсем иначе.
Неплохая статья про LDAP на русском