LINUX.ORG.RU
ФорумAdmin

proftpd mod_ldap поиск по группам

 ,


0

1

Добрый день. Можете подсказать как осуществляется поиск по группам через mod_ldap.
OpenLDAP версии 2.4.44, proftpd 1.3.5, proftpd-mod_ldap 1.3.5 в конфиге proftpd записана сейчас простая конструкция, которая ищет uid в указанов контейнере выглядит это так

LDAPUsers               ou=Users,dc=local,dc=example,dc=ru (uid=%u)
А как сделать поиск, что логинеться могли пользователи только определенной группы, она обозначена так
cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru

Ответ на: комментарий от zgen

Я читал этот документ. Но так и не смог по нему заставить работать, все кончается одним «Login failed». Под форматом группы вы это имели ввиду «posixGroup»?

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

Тогда показывайте, запись группы, и что вы делали (настройки), когда все кончилось «login failed».

Включите дебаг в openldap и посмотрите, какой запрос приходит и какой ответ отдается.

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

Вот запись группы:

dn: cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru
cn: ftp_full
gidNumber: 502
objectClass: posixGroup
objectClass: top
memberUid: undertaket
Когда получается авторизоваться, настройки proftpd выглядят так:
<IfModule mod_ldap.c>
LDAPServer              172.16.255.4:389
LDAPBindDN              cn=root,dc=local,dc=example,dc=ru pass
LDAPUsers ou=Users,dc=local,dc=example,dc=ru (uid=%u)
OpenLDAP при этом в лог пишет следующее:
conn=1429 fd=9 ACCEPT from IP=172.16.255.5:64087 (IP=0.0.0.0:389)
conn=1429 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" method=128
conn=1429 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" mech=SIMPLE ssf=0
conn=1429 op=0 RESULT tag=97 err=0 text=
conn=1429 op=1 SRCH base="ou=Users,dc=local,dc=example,dc=ru" scope=2 deref=0 filter="(uid=undertaket)"
conn=1429 op=1 SRCH attr=uid uidNumber gidNumber homeDirectory loginShell
<= mdb_equality_candidates: (uid) not indexed
conn=1429 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
conn=1429 op=2 SRCH base="ou=Users,dc=local,dc=example,dc=ru" scope=2 deref=0 filter="(uid=undertaket)"
conn=1429 op=2 SRCH attr=uid uidNumber gidNumber homeDirectory loginShell
<= mdb_equality_candidates: (uid) not indexed
conn=1429 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
conn=1430 fd=12 ACCEPT from IP=172.16.255.5:42157 (IP=0.0.0.0:389)
conn=1430 op=0 BIND dn="cn=undertaket,ou=Users,dc=local,dc=example,dc=ru" method=128
conn=1430 op=0 BIND dn="cn=undertaket,ou=Users,dc=local,dc=example,dc=ru" mech=SIMPLE ssf=0
conn=1430 op=0 RESULT tag=97 err=0 text=
conn=1430 op=1 UNBIND
conn=1430 fd=12 closed
А если менять настройки на что то такое то авторизация не проходит: proftp
LDAPUsers cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru (&(LDAPAttr_uidNumber=%u)(objectclass=posixGroup))
OpenLDAP
conn=1433 fd=9 ACCEPT from IP=172.16.255.5:51878 (IP=0.0.0.0:389)
conn=1433 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" method=128
conn=1433 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" mech=SIMPLE ssf=0
conn=1433 op=0 RESULT tag=97 err=0 text=
conn=1433 op=1 UNBIND
conn=1433 fd=9 closed
И всякие похожие вариации, рабочего варианта так и не нашёл...

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

Т.е. вы говорите, что читали документацию, но при этом вас не смущает, что в документации написано одно, а в конфиг вы пишите совершенно другое?

Syntax: LDAPGroups base-dn cn-filter-template gid-number-filter-template member-uid-filter-template

LDAPUsers cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru (&(LDAPAttr_uidNumber=%u)(objectclass=posixGroup))

Т.е. для вас LDAPUsers и LDAPGroups никакой смысловой разницы не несёт.

Ну-ну.

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

Прошу прощения, вчера невнимательно посмотрел свой ответ: Используя любой фильтр указанный ниже:

LDAPGroups cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru (&(LDAPAttr_memberUid=%v)(objectclass=posixGroup))
LDAPGroups cn=ftp_full,ou=ftp,dc=local,dc=example,dc=ru (memberUid=%u)(objectclass=posixGroup))
Записей в логе ldap нет. Второй фильтр брал тут http://www.proftpd.org/docs/directives/linked/config_ref_LDAPGroups.html А если записать так:
LDAPUsers ou=Users,dc=local,dc=example,dc=ru (&(LDAPAttr_uidNumber=%v)(objectclass=posixGroup))
В логе появляются следующие записи:
slapd[9674]: conn=1000 fd=9 ACCEPT from IP=172.16.255.5:26747 (IP=0.0.0.0:389)
slapd[9674]: conn=1000 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" method=128
slapd[9674]: conn=1000 op=0 BIND dn="cn=root,dc=local,dc=example,dc=ru" mech=SIMPLE ssf=0
slapd[9674]: conn=1000 op=0 RESULT tag=97 err=0 text=
slapd[9674]: conn=1000 op=1 UNBIND
slapd[9674]: conn=1000 fd=9 closed

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

Я вижу, ты в LDAP не особо соображаешь, пишешь что попало, куда попало.

Давай свои рабочие конфиги полностью (без паролей).

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

Впервые общаюсь с openldap, спасибо вам за помощь.
Вот конфиги openldap и proftpd:

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/misc.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/schema/openldap.schema

modulepath	/usr/local/libexec/openldap
moduleload	back_mdb
access to attrs=userPassword
        by self write
        by anonymous auth
        by * none
access to *
        by self write
	by users read
        by anonymous read
        by * none
logfile /var/log/slapd.log
loglevel 256

database	mdb
maxsize		1073741824
suffix dc=local,dc=example,dc=ru
rootdn cn=root,dc=local,dc=example,dc=ru
rootpw		secret
directory	/var/db/openldap-data

index	objectClass	eq
#index   cn              eq
ServerName			"FTP"
ServerType			standalone
DefaultServer			on
ScoreboardFile			/var/run/proftpd/proftpd.scoreboard
DefaultRoot 			/tmp/ftp/users
Port				21
UseIPv6				off
Umask				022
MaxInstances			30
CommandBufferSize	512
User				nobody
Group				nogroup
AllowOverwrite		on
<Limit SITE_CHMOD>
  DenyAll
</Limit>

LoadModule 		mod_ldap.c
AuthOrder		mod_ldap.c
<IfModule mod_ldap.c>
LDAPServer		172.16.255.4:389
LDAPBindDN              cn=root,dc=local,dc=example,dc=ru secret
LDAPUsers               ou=Users,dc=local,dc=example,dc=ru (uid=%u)
</IfModule>

TransferLog		/var/log/proftpd/xfer.log
SystemLog		/var/log/proftpd/proftpd.log

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