Назад | Перейти на главную страницу

ACL OpenLDAP в SUSE, конфигурация Kerberos

Я реализую Kerberos с OpenLDAP вручную и в соответствии с Документация MIT, Я должен вручную установить этот ACL:

access to dn.base=""
    by * read

access to dn.base="cn=Subschema"
    by * read

# Provide access to the realm container.
access to dn.subtree= "cn=EXAMPLE.COM,cn=krbcontainer,dc=example,dc=com"
    by dn.exact="cn=kdc-service,dc=example,dc=com" write
    by dn.exact="cn=adm-service,dc=example,dc=com" write
    by * none

# Provide access to principals, if not underneath the realm container.
access to dn.subtree= "ou=users,dc=example,dc=com"
    by dn.exact="cn=kdc-service,dc=example,dc=com" write
    by dn.exact="cn=adm-service,dc=example,dc=com" write
    by * none

access to *
    by * read

Согласно тому, что я прочитал, я должен установить это в slapd.conf.

Я думаю, что Suse не использует slapd.conf, поэтому я выясняю, как мне добавить эти записи. Я полностью застрял.

Кто-нибудь может мне помочь?

Огромное спасибо.

Последние версии OpenLDAP используют сам протокол LDAP для поддержания своей конфигурации. Все содержится в cn = поддерево конфигурации в базе данных под названием olcDatabase={0}config,cn=config. Доступ к этой базе данных обычно предоставляется локальному пользователю. корень на автомате.

Чтобы изменить конфигурацию, вам нужно сначала найти имя вашей основной базы данных:

ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config '(objectClass=olcDatabaseConfig)'

где метод SASL EXTERNAL проверяет uid и gid пользователя, выполняющего команду (так что вы должны быть корень).

Как только вы нашли имя своей базы данных (скажем, dn: olcDatabase={1}mdb,cn=config) вам нужно создать файл (скажем, authz.ldif) в формате LDIF:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to dn.base=""
    by * read
olcAccess: to dn.base="cn=Subschema"
    by * read
olcAccess: to dn.subtree= "cn=EXAMPLE.COM,cn=krbcontainer,dc=example,dc=com"
    by dn.exact="cn=kdc-service,dc=example,dc=com" write
    by dn.exact="cn=adm-service,dc=example,dc=com" write
    by * none
olcAccess: to dn.subtree= "ou=users,dc=example,dc=com"
    by dn.exact="cn=kdc-service,dc=example,dc=com" write
    by dn.exact="cn=adm-service,dc=example,dc=com" write
    by * none
olcAccess: to *
    by * read

Это заменит все ваши предыдущие olcAccess атрибуты с новыми. Затем вам нужно отправить обновление на сервер OpenLDAP:

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

Примечание: на вашем сервере LDAP вы обычно хотите получить доступ к серверу через URI ldapi:/// (т.е. сокет UNIX), поэтому вы можете добавить:

URI ldapi:///

на ваш ldap.conf файл (man 5 ldap.conf), который имеет разные пути в разных дистрибутивах. Например. в Debian это в /etc/ldap/ldap.conf.