ldapsearch (диаметрально разный результат в зависимости от места запуска)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

ldapsearch

Сообщение sash-kan »

запускаю одну и ту же команду
$ ldapsearch -h <ldap-сервер> -x -D 'cn=<имя bind-учётки>,dc=<домен>,dc=ru' -w '<пароль>' '*'
на машине с этим самым ldap-сервером и на клиентской машине (где, кстати, благополучно работает себе ldap-аутентификация).

в первом случае (на сервере) получаю законные 88 записей.
а во втором случае (на клиентской машине) получаю:

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

# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: *
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

никто не сможет объяснить эту разницу? и что нужно сделать, чтобы и на клиентской машине можно было получать ответы от ldap-сервера?

p.s. вообще, конечно, выдача ldapsearch меня интересует мало. просто пытаюсь (уже не первый) сервис запустить с использованием ldap-аутентификации, и не выходит… вот и хочется выяснить, что же я делаю не так.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ldapsearch

Сообщение sash-kan »

как я понимаю, доступ на сервере регулируется этим файлом:

Shell

$ sudo grep -Ev '^(#|$)' /etc/openldap/slapd.access.conf access to dn.exact="" by * read access to dn.subtree="cn=Subschema" by * read access to dn.regex="^([^,]*,)?ou=[^,]+,(dc=[^,]+(,dc=[^,]+)*)$" attrs=sambaLMPassword,sambaNTPassword,userPassword,sambaPasswordHistory,sambaPwd LastSet by self write by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by anonymous auth by * none access to dn.regex="^sambaDomainName=([^,]+),(dc=[^,]+(,dc=[^,]+)*)$" attrs=entry,children,sambaDomain by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="^([^,]+,)?ou=People,(dc=[^,]+(,dc=[^,]+)*)$" attrs=entry,children,posixAccount,sambaSamAccount by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="([^,]+,)?ou=People,(dc=[^,]+(,dc=[^,]+)*)$" attrs=inetOrgPerson,mail by self write by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="^([^,]+,)?ou=Group,(dc=[^,]+(,dc=[^,]+)*)$" attrs=entry,children,posixGroup,sambaGroupMapping by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="^([^,]+,)?ou=Hosts,(dc=[^,]+(,dc=[^,]+)*)$" attrs=entry,children,posixAccount,inetOrgperson,sambaSamAccount by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="^([^,]+,)?ou=Idmap,(dc=[^,]+(,dc=[^,]+)*)$" attrs=entry,children,sambaIdmapEntry by dn.exact,expand="uid=root,ou=People,$2" write by group.expand="cn=Domain Controllers,ou=Group,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to dn.regex="^([^,]+,)?ou=Contacts,(dc=[^,]+(,dc=[^,]+)*)$" attrs=children,entry,inetOrgPerson by dn.sub,expand="ou=People,$2" write by group.expand="cn=Replicator,ou=Group,$2" write by users read by anonymous read access to * by dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" read by anonymous auth by self write by dn="uid=root,ou=Users,dc=<домен>,dc=ru" write by * none


Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ldapsearch

Сообщение sash-kan »

ага, нашёл в slapd.conf после вышеприведённого инклуда такие строчки:

Shell

# Provide write access to replicators, and cover access to any other # attributes (default anonymous read access may be undesirable) access to dn.subtree="dc=<домен>,dc=ru" by group="cn=Replicator,ou=Group,dc=<домен>,dc=ru" by users read by anonymous read



запустил демона с loglevel=256 по подсказке уважаемого Ленивая Бестолочь
получились такие результаты:

Shell

# с сервера Aug 18 18:48:08 jumbo slapd[21837]: conn=3 fd=12 ACCEPT from IP=192.168.0.250:49687 (IP=0.0.0.0:389) Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" method=128 Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" mech=SIMPLE ssf=0 Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=0 RESULT tag=97 err=0 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=1 SRCH base="dc=<домен>,dc=ru" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uidNumber=533)(objectClass=posixAccount))" Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=1 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass Aug 18 18:48:08 jumbo slapd[21837]: conn=3 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=4 fd=18 ACCEPT from IP=192.168.0.250:49688 (IP=0.0.0.0:389) Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" method=128 Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" mech=SIMPLE ssf=0 Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=0 RESULT tag=97 err=0 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=1 SRCH base="dc=<домен>,dc=ru" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uidNumber=533)(objectClass=posixAccount))" Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=1 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass Aug 18 18:48:08 jumbo slapd[21837]: conn=4 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=4 fd=18 closed (connection lost) Aug 18 18:48:08 jumbo slapd[21837]: conn=5 fd=18 ACCEPT from IP=192.168.0.250:49689 (IP=0.0.0.0:389) Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" method=128 Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" mech=SIMPLE ssf=0 Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=0 RESULT tag=97 err=0 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=1 SRCH base="dc=<домен>,dc=ru" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uidNumber=533)(objectClass=posixAccount))" Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=1 SRCH attr=uid userPassword uidNumber gidNumber cn homeDirectory loginShell gecos description objectClass Aug 18 18:48:08 jumbo slapd[21837]: conn=5 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= Aug 18 18:48:08 jumbo slapd[21837]: conn=5 fd=18 closed (connection lost) Aug 18 18:48:13 jumbo slapd[21837]: conn=6 fd=18 ACCEPT from IP=192.168.0.250:49729 (IP=0.0.0.0:389) Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" method=128 Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" mech=SIMPLE ssf=0 Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=0 RESULT tag=97 err=0 text= Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=1 SRCH base="dc=<домен>,dc=ru" scope=2 deref=0 filter="(objectClass=*)" Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=1 SRCH attr=* Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=1 SEARCH RESULT tag=101 err=0 nentries=88 text= Aug 18 18:48:13 jumbo slapd[21837]: conn=6 op=2 UNBIND Aug 18 18:48:13 jumbo slapd[21837]: conn=6 fd=18 closed # с клиента Aug 18 18:47:36 jumbo slapd[21837]: conn=2 fd=12 ACCEPT from IP=192.168.0.99:39565 (IP=0.0.0.0:389) Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" method=128 Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=0 BIND dn="cn=<имя bind-учётки>,dc=<домен>,dc=ru" mech=SIMPLE ssf=0 Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=0 RESULT tag=97 err=0 text= Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=1 SRCH base="" scope=2 deref=0 filter="(objectClass=*)" Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=1 SRCH attr=* Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text= Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=2 UNBIND Aug 18 18:47:36 jumbo slapd[21837]: conn=2 fd=12 closed


Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ldapsearch

Сообщение sash-kan »

ага. кажется, ключевой момент получилось выяснить:
1. SRCH base="dc=<домен>,dc=ru"
2. SRCH base=""
при добавке к команде на клиенте параметра -b 'dc=<домен>,dc=ru' список выдаётся.

остаётся один нерешённый вопрос: _почему_ так?

ldapsearch вроде бы /etc/ldap.conf принимает в расчёт. вот разница между этими файлами

Shell

$ diff ldap.conf.server ldap.conf.client 43,44c43 < < rootbinddn cn=root,dc=<домен>,dc=ru --- > #rootbinddn cn=manager,dc=padl,dc=com 51c50 < scope sub --- > #scope sub 88c87 < pam_filter objectclass=posixAccount --- > #pam_filter objectclass=account 91c90 < pam_login_attribute uid --- > #pam_login_attribute uid 117c116 < pam_member_attribute gid --- > #pam_member_attribute uniquemember 126c125 < pam_login_attribute uid --- > #pam_login_attribute userPrincipalName 137c136 < pam_password md5 --- > #pam_password clear 182c181 < nss_base_passwd dc=<домен>,dc=ru?sub?objectClass=posixAccount --- > nss_base_passwd dc=<домен>,dc=ru?sub 186,187c185,186 < nss_base_shadow dc=<домен>,dc=ru?sub?objectClass=posixAccount < nss_base_group dc=<домен>,dc=ru?sub?objectClass=posixGroup --- > nss_base_shadow dc=<домен>,dc=ru?sub > nss_base_group dc=<домен>,dc=ru?sub

различия, конечно, есть. но не улавливается то самое, ключевое.

попробовал на клиентской машине подложить серверный /etc/ldap.conf. ldap-аутентификация обломилась…
нда, что-то всё страньше становится…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: ldapsearch

Сообщение Ленивая Бестолочь »

sash-kan писал(а):
18.08.2010 19:01
Aug 18 18:47:36 jumbo slapd[21837]: conn=2 op=1 SRCH base="" scope=2 deref=0 filter="(objectClass=*)"

попробуй ldapsearch-у на клиенте добавить опцию
-b "dc=<домен>,dc=ru"
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ldapsearch

Сообщение sash-kan »

Ленивая Бестолоч... писал(а):
18.08.2010 20:27
попробуй ldapsearch-у на клиенте добавить опцию
-b "dc=<домен>,dc=ru"
собственно, так и сделал.
sash-kan писал(а):
18.08.2010 19:43
при добавке к команде на клиенте параметра -b 'dc=<домен>,dc=ru' список выдаётся.


остался инересный вопрос: почему так происходит? в чём разница?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: ldapsearch

Сообщение Ленивая Бестолочь »

sash-kan писал(а):
18.08.2010 20:34
собственно, так и сделал.

да чтож я такой невнимательный :-)

sash-kan писал(а):
18.08.2010 20:34
остался инересный вопрос: почему так происходит? в чём разница?

ммм... разницы в версиях?
echo $LDAPBASE
grep -i base /etc/ldap.conf
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ldapsearch

Сообщение sash-kan »

Ленивая Бестолоч... писал(а):
19.08.2010 01:37
ммм... разницы в версиях?
команды ldapsearch? да, версии разные. на клиенте более свежая mandriva.

Ленивая Бестолоч... писал(а):
19.08.2010 01:37
echo $LDAPBASE
пусто

Ленивая Бестолоч... писал(а):
19.08.2010 01:37
grep -i base /etc/ldap.conf

Shell

сервер$ grep -i base /etc/ldap.conf | grep -Ev '^(#|$)' base dc=<домен>,dc=ru nss_base_passwd dc=<домен>,dc=ru?sub?objectClass=posixAccount nss_base_shadow dc=<домен>,dc=ru?sub?objectClass=posixAccount nss_base_group dc=<домен>,dc=ru?sub?objectClass=posixGroup клиент$ grep -i base /etc/ldap.conf | grep -Ev '^(#|$)' base dc=<домен>,dc=ru nss_base_passwd dc=<домен>,dc=ru?sub nss_base_shadow dc=<домен>,dc=ru?sub nss_base_group dc=<домен>,dc=ru?sub

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: