Openldap

SUSE、Kerberos 配置中的 OpenLDAP ACL

  • December 1, 2019

我正在使用 OpenLDAP 手動實現 Kerberos,根據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 本身來維護其配置。一切都包含在名為olcDatabase={0}config,cn=config. 訪問該數據庫的權限通常授予機器上的本地使用者root

為了修改配置,您首先要找到您的主數據庫名稱:

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

SASL EXTERNAL 方法檢查執行命令的使用者的 uid 和 gid (因此您必須是root)。

一旦你找到了你的數據庫名稱(比如dn: olcDatabase={1}mdb,cn=config),你需要創建一個authz.ldifLDIF 格式的文件(比如 ):

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.

引用自:https://serverfault.com/questions/993871