Openldap
SUSE、Kerberos 配置中的 OpenLDAP ACL
我正在使用 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.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
.