LINUX.ORG.RU
ФорумAdmin

Openldap - ОС не видит егойных пользователей


0

0

Доброго времени суток.

Debian etch, openldap-2.3.30.

/etc/ldap/slapd.conf:
=====
allow bind_v2

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 32768

modulepath /usr/lib/ldap
moduleload back_bdb
database bdb
sizelimit 500

suffix "dc=inter,dc=net"
tool-threads 1
checkpoint 512 30

rootdn "cn=admin,dc=inter,dc=net"
directory "/var/lib/ldap"
rootpw {CRYPT}crvOe23syUGxo # Сгенерен slappasswd -c crypt
dbconfig set_cachesize 0 2097152 0

dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500

index objectClass eq
lastmod on

access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=inter,dc=net" write
by anonymous auth
by self write
by * none

access to dn.base="" by * read

access to *
by dn="cn=admin,dc=inter,dc=net" write
by * read
=====

/etc/nsswitch.conf:
=====
passwd: files ldap
group: files ldap
shadow: files ldap

hosts: files dns ldap
networks: ldap [NOTFOUND=return] files

protocols: ldap [NOTFOUND=return] files
services: ldap [NOTFOUND=return] files
ethers: ldap [NOTFOUND=return] files
rpc: ldap [NOTFOUND=return] files

netgroup: nis
=====

/etc/ldap/ldap.conf:
=====
HOST 127.0.0.1:389 # на всякий случай
BASE dc=inter, dc=net
URI ldap://127.0.0.1
=====

Сервер slapd стартует. Добавил с помощью phpldapadmin ou=users, ou=groups, ou=computers, юзера cn=test в ou=users. Если выполнить "ldapsearch -x -LL -b 'dc=inter,dc=net' '(cn=test)' -H ldap://127.0.0.1" - то юзер в базе LDAP'а находится.
Теперь, по идее, должно быть "отображение" (mapping) юзеров из LDAP'а на систему - пытаюсь выполнить id test - говорит, нет такого юзера. Равно как и getent group не находит группы из ЛДАПа...
slapd -d 256 ничего подозрительного не пишет...
Почему система не видет учетные записи из LDAP'а? Что еще не сделано?

anonymous


Попробуй:
ln /etc/ldap/ldap.conf /etc/ldap.conf


Если не поможет(хотя должно помочь), то попробуй:

echo "rootbinddn cn=admin,dc=inter,dc=net" >>/etc/ldap.conf

echo "UNCRYPTED_PASS" >/etc/ldap.secret
chmod 0600 /etc/ldap.secret


Если сработает. то создай отдельного админского пользователя в LDAP, дай ему право читать атрибуты "userPassword,shadowLastChange" и пропиши его в /etc/ldap.conf вместо суперадмина.


Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

Спасибо большое за ответ.

Но ни один из советов не помог. В логах:

Aug 13 11:25:20 uran slapd[4829]: /etc/ldap/slapd.conf: line 48: rootdn is always granted unlimited privileges.
Aug 13 11:25:20 uran slapd[4829]: /etc/ldap/slapd.conf: line 54: rootdn is always granted unlimited privileges.
Aug 13 11:25:20 uran slapd[4830]: slapd starting
Aug 13 11:28:17 uran slapd[4830]: <= bdb_equality_candidates: (gidNumber) index_param failed (18)
Aug 13 11:28:23 uran slapd[4830]: <= bdb_equality_candidates: (gidNumber) index_param failed (18)

Это ж, как я понимаю, не ошибки, а предупреждения о безопасности...

anonymous
()
Ответ на: комментарий от anonymous

Попробуй ещё в /etc/ldap.conf дописать :

nss_base_passwd ou=users,dc=inter,dc=net?one
nss_base_shadow ou=users,dc=inter,dc=net?one

Ну и до кучи:
nss_base_group ou=groups,dc=inter,dc=net?one



>Это ж, как я понимаю, не ошибки, а предупреждения о безопасности...

Это сообщение о бесполезности назначения суперадмину каких-либо прав. Всё равно он сможет читать и писать ВСЁ (независимо от запрещений в slapd.conf). Поэтому суперадминский пароль нигде и никогда светить не надо (разве что на период настройки). :)

Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

Да, уже сам вычитал про все это, спасибо. Добавил, никакого эффекта...
Что еще и где можно поковырять?
Вот, что значит потерять рабочий бубен - сразу все перестает работать и настраиваться... :-/

anonymous
()
Ответ на: комментарий от anonymous

Приведу свои настройки для сравнения

/etc/ldap.conf :
#--------------------------------------------------------------
host 127.0.0.1
base dc=lc,dc=floodlightgames,dc=com
rootbinddn cn=NisManager,dc=lc,dc=floodlightgames,dc=com
timelimit 120
bind_timelimit 120
idle_timelimit 3600
nss_base_passwd ou=People,dc=lc,dc=floodlightgames,dc=com?one
nss_base_shadow ou=People,dc=lc,dc=floodlightgames,dc=com?one
nss_base_group ou=Groups,dc=lc,dc=floodlightgames,dc=com?one
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd
#--------------------------------------------------------------

/etc/ldap.secret по понятным причинам не свечу :) В нём в открытом виде пароль cn=NisManager,dc=lc,dc=floodlightgames,dc=com

/etc/openldap/slapd.conf:
#--------------------------------------------------------------
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/krb5-kdc.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/floodlightgames.schema
pidfile /var/run/ldap/slapd.pid
argsfile /var/run/ldap/slapd.args
allow bind_v2
sasl-host localhost
database ldbm
cachesize 40000
dbcachesize 60000000
suffix "dc=lc,dc=floodlightgames,dc=com"
rootdn "cn=sadmin,dc=lc,dc=floodlightgames,dc=com"
rootpw {SMD5}XXXXXXXXXXXXXXXXXXXXXXX=
directory /var/lib/ldap
index objectClass eq
index ou,cn,sn,displayName eq,pres,sub
index uidNumber,gidNumber eq
index memberUID,uid eq,pres,sub
index default sub
include /etc/openldap/slapd.access.conf
#--------------------------------------------------------------

/etc/openldap/slapd.access.conf:
#--------------------------------------------------------------
access to attrs=userPassword
by anonymous auth
by self write
by dn="cn=NisManager,dc=lc,dc=floodlightgames,dc=com" read
by * none
access to *
by self write
by * read
#--------------------------------------------------------------

/etc/nsswitch.conf:
#--------------------------------------------------------------
passwd: files ldap
shadow: files ldap
group: files ldap
hosts: files dns
bootparams: files nisplus [NOTFOUND=return]
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
#--------------------------------------------------------------

Попробуй по аналогии - вариант с боевого сервака. Изменён только хеш от пароля.

Slavaz ★★★★★
()
Ответ на: комментарий от anonymous

А правильно ли настроена связка libnss-libpam ? Просто инфы мало - это первое, что на ум пришло

cyclope
()
Ответ на: комментарий от Slavaz

Вот, посоветовали отличную доку: http://www.debian-administration.org/articles/585 Сделал по ней все с нуля - заработало. Похоже проблема была таки в неправильной настройке libnss-ldap.conf. В общем, вот минимальные конфиги, при которых id <ldapuser> отрабатывает успешно, то-бишь система видит ЛДАП-аккаунты:

/etc/ldap/ldap.conf:
#=====
base dc=inter, dc=net
rootbinddn cn=admin,dc=inter,dc=net
URI ldap://127.0.0.1/
#=====

/etc/ldap/slapd.conf:
#=====
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 256
modulepath /usr/lib/ldap
moduleload back_bdb
operation
sizelimit 500
tool-threads 1
backend bdb
checkpoint 512 30
database bdb

suffix "dc=inter,dc=net"

directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
index uid eq
lastmod on

access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=inter,dc=net" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=inter,dc=net" write
by * read
#=====

/etc/libnss-ldap.conf:
#=====
base dc=inter,dc=net
uri ldap://127.0.0.1/
ldap_version 3
bind_policy soft
#=====

/etc/nsswitch.conf:
#=====
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns ldap
networks: ldap [NOTFOUND=return] files
protocols: ldap [NOTFOUND=return] files
services: ldap [NOTFOUND=return] files
ethers: ldap [NOTFOUND=return] files
rpc: ldap [NOTFOUND=return] files
netgroup: nis
#=====
Также сделал ссылку с /etc/ldap/ldap.conf на /etc/ldap.conf - пусть будет... =)

Всем спасибо за помощь, буду вникать дальше. Slavaz - отдельное большое спасибо за оперативность и исчерпывающие описания. :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.