почему анонимный пользователь может получить доступ к атрибуту userPassword в OpenLDAP?

Вот мой ACL, openldap - v2.4.4.

acl.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcAccess
olcAccess: to attrs=userPassword by dn="cn=Manager,dc=ad,dc=pthl,dc=hk" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=Manager,dc=ad,dc=pthl,dc=hk" write by * read

, а затем я запускаю

 ldapmodify -Y EXTERNAL -H ldapi:/// -f acl.ldif

, и я запускаю

 ldapsearch -x -b ou=people,dc=ad,dc=pthl,dc=hk "(&(objectClass=posixAccount)(uid=someone))" -h 172.16.234.11

, который возвращает

# remove some lines
# .....

userPassword:: e1NTSEE1MTJ9MUpGdjcyd0w4aWJZRHd2eHpacVYyb1c4Q1p0Z0JrdDNpdWJDcU9
 pVjhmNVQ2QkgzWVNLQnVmNU03bnVwNFB2Q2NiaHR3UGcxOW51VitLMitaUk9WY2JLT0NOMDROWGlG

2
задан 12 April 2019 в 11:34
1 ответ

Прочитав официальную документацию , я обнаружил основную причину, ACL зависит от базы данных, добавьте лицевую или HDB. Я добавил их не в том месте. : (

Итак, моя последняя конфигурация -

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: hdb
olcSuffix: dc=ad,dc=pthl,dc=hk
olcRootDN: cn=Manager,dc=ad,dc=pthl,dc=hk

#................
#................

# user itself and Manager write, anonymous bind, other deny
olcAccess: to attrs=userPassword
  by self write
  by anonymous auth
  by dn.base="cn=Manager,dc=ad,dc=pthl,dc=hk" write
  by * none
# Manager write, other(both authenticated and anonymous) read.
olcAccess: to *
  by dn.base="cn=Manager,dc=ad,dc=pthl,dc=hk" write
  by * read

И политика контроля доступа по умолчанию разрешает чтение всем клиентам. Независимо от того, какая политика контроля доступа определена, rootdn всегда имеет полные права (например, авторизацию, поиск, сравнивать, читать и писать) для всего и чего угодно.

Как следствие, бесполезно (и приводит к снижению производительности) явно указывать rootdn среди предложений.

1
ответ дан 3 December 2019 в 12:30

Теги

Похожие вопросы