[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LDAP еще раз



>> nikita@zigzag:~> ldapsearch -x -D
>> uid=nikita,ou=People,dc=lvk,dc=cs,dc=msu,dc=su -W '(uid=nikita)'
>> Enter LDAP Password:
>> # extended LDIF
>> #
>> # LDAPv3
>> # base <> with scope sub
>> # filter: (uid=nikita)
>> # requesting: ALL
>> #
>> .....
>> т.е. распрекрасно биндится.
> 
> У меня - нет. Пожалуйста, опиши, как устанавливал пароль для этого
> юзера?

Командой passwd, которая загнала пароль в LDAP через  pam_ldap.
А впрочем, это неважно - метод хранения пароля от способа занесения не
зависит.

Ты лучше
1) убедись, что указываешь правильные ключи в ldapsearch
2) убедись что позволяешь анонимный +доступ к userPassword на auth
 в userPassword (не лажа ли какая)

>> > Скажем так... libnss-ldap при установке говорит, что для возможности
>> > сверки паролей надо в /etc/libnss-ldap.conf положить в открытом виде
>> > пароль и юзернейм, от имено которого libnss-ldap будет биндиться к ldap
>> > для того, чтоб проверить пароь пользователя, который пытается
>> > логиниться. Соответственно, этот самый passworder должен иметь доступ к
>> > userPassword на чтение, а сам пароль passworder'a должен лежать в
>> > открытом виде в этом файле.
>> 
>> Ну и пусть. Да хоть вообще анонимусу разрешай читать userPassword. Не
>> вижу никакого нарушения защиты в том, что кто-то заполучит MD5 хэш пароля
>> пользователя.
> 
> Если б это было неважно, никакого /etc/shadow не существовало бы.

Не путай crypt и md5. Когда пароли хэштруются через md5, и нет идиотского
ограничения на длину пароля, раскрывать хэш достаточно безопасно.

Впрочем, даже с md5 про анонимный доступ я погорячился. У меня открытого
доступа до userPassword тоже нет:
access to attribute=userPassword
        by dn="cn=admin,dc=lvk,dc=cs,dc=msu,dc=su" write
        by anonymous auth
        by self write
        by * none

Это вполне достаточно, чтобы pam_ldap мог его использовать.

>> > Ну тем не менее именно так я добился нормального входа в систему
>> > пользователей, которые есть только в LDAP и нет в passwd
>> 
>> Видимо, какой-то вариант fallback-а.
> 
> Нет.
> man nsswitch.conf говорит, что когда в файле находится нечто вроде
> 
> something: method1 method2
> 
> То попытка сделать something выполняется при помощи
> /lib/libnss_method1.so, потом пытается /lib/libnss_method2.so и так
> далее. Соответственно, password: ldap files, то поверка пароля идет при
> помощи /lib/libnss_ldap.so первым делом.

Не пароля, а базы passwd. В которой: имя пользователя, uid, gid, gecos,
home, shell. И "x" в качестве пароля.



Reply to: