OpenLDAP усовершенствовал конфигурацию ACL

У меня есть несколько ДИТЫ в моем сервере OpenLDAP. Я сделал пользователя cn=config корнем так, чтобы cn=config имел корневой доступ ко всем ДИТАМ (каждый DIT). Кроме того, существует администратор на DIT IDed как cn=admin, $suffix [например, cn=admin, dc=example, dc=com или безотносительно].

Я добавил, что пользовательское ИМЯ приписывает администратору и пользовательским объектам. Атрибут называют: 'уровень обслуживания' и значения или 'приостановлены' или 'нормальны'. Атрибут является дополнительным, и когда он не присутствует, мы интерпретируем его как нормальный - не приостановленный.

В настоящее время, когда уровень обслуживания установлен на 'приостановленный', мой ACL временно отстраняет обычных пользователей и не временно отстраняет локальных администраторов / администраторов DIT. Мне нужны администраторы, чтобы не мочь пройти проверку подлинности, как обычные пользователи.

Демонстрационная текущая установка LDIF ACLs ниже:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  filter=(serviceLevel=suspended)
  by dn="cn=config" write
  by * none
olcAccess: {1}to attrs=userPassword,shadowLastChange
  filter=(!(serviceLevel=suspended))
  by self write
  by anonymous auth
  by dn="cn=admin,dc=directory,dc=com" write
  by dn="cn=config" write
  by * none
olcAccess: {2}to dn.base="" by * read
olcAccess: {3}to *
  filter=(serviceLevel=suspended)
  by dn="cn=config" write
  by * none
olcAccess: {4}to *
  filter=(!(serviceLevel=suspended))
  by self write
  by dn="cn=admin,dc=directory,dc=com" write
  by dn="cn=config" write
  by * read

Советуйте, если у Вас есть идея, почему администраторы домена проскальзывают через мой ACL. Я, по-видимому, не понимаю, как правильно установить эти правила.

3
задан 15 April 2015 в 11:53
1 ответ

Я считаю, что вы используете более сложный подход, чем это необходимо. Чтобы отключить DIT, отключите соответствующую базу данных. Это можно сделать, установив olcHidden: TRUE.

olcHidden: TRUE | FALSE
контролирует, будет ли база данных использоваться для ответов на запросы. Скрытая база данных никогда не будет выбрана для ответа на запросы, и любой суффикс, настроенный в базе данных, будет игнорироваться при проверке на конфликты с другими базами данных. По умолчанию olcHidden is FALSE.

ldapmodify <<EOF
dn: olcDatabase={2}hdb,cn=config
replace: olcHidden
olcHidden: TRUE
EOF

Addtional Note:

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

Как следствие, бесполезно (и влечет за собой штраф за выполнение) явным образом перечислять rootdn среди этих пунктов. --OpenLDAP Software 2.4 Administrator's Guide

2
ответ дан 3 December 2019 в 07:00

Теги

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