在 RHEL 6 中进行 OpenLDAP 配置更改

And*_*dyM 1 ldap rhel

我一直在 RHEL 6 上配置 OpenLDAP,似乎您已经运行以下命令来重建配置目录。我没问题,但我的问题是,假设我想更改服务器密码,每次更改配置时都必须完成整个过程吗?有没有办法在使用 RHEL6 方法构建后更改 slapd 配置?

以下是我在网上找到的建议。

此示例假定要从旧 slapd 配置转换的文件位于 /etc/openldap/slapd.conf 并且 OpenLDAP 配置的新目录位于 /etc/openldap/slapd.d/。删除新的 /etc/openldap/slapd.d/ 目录的内容:

rm -rf /etc/openldap/slapd.d/*

运行slaptest检查配置文件的有效性并指定新的配置目录:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

配置新目录的权限:chown -R ldap:ldap /etc/openldap/slapd.d

chmod -R 000 /etc/openldap/slapd.d

chmod -R u+rwX /etc/openldap/slapd.d

澄清一下:我正在寻求有关如何使用较新版本的 openldap 编辑 slapd 配置的帮助,其中配置保存在架构中而不是原始slapd.conf.

pbm*_*pbm 7

迁移到slapd.d配置目录后,slapd.conf文件被转换为少数 LDIF 文件。

对于在slapd.conf其中配置的每个数据库,现在都有新的 ldif 文件slapd.d/cn=config/。该文件的名称由olcDatabase={Number}NameOfDatabase.ldif.

下面是slapd.d我的情况下的结构(在 Debian 上):

slapd.d/
??? cn=config
?   ??? cn=module{0}.ldif
?   ??? cn=schema
?   ?   ??? cn={0}core.ldif
?   ??? cn=schema.ldif
?   ??? olcDatabase={0}config.ldif
?   ??? olcDatabase={1}bdb.ldif
?   ??? olcDatabase={-1}frontend.ldif
??? cn=config.ldif
Run Code Online (Sandbox Code Playgroud)

最重要的是文件olcDatabase={1}bdb.ldifolcDatabase={0}config.ldif其中包括两个数据库后端的配置:bdb- 我的主要 ldap 基础和config用于动态修改slapd配置的虚拟数据库。

每个数据库都有自己的密码和在 ldif 文件中配置的 root 用户。根用户和密码由以下属性定义:

olcRootDN: cn=Manager,cn=config
olcRootPW:: c2VjcmV0
Run Code Online (Sandbox Code Playgroud)

所以第一种更改密码的方法就是更改olcRootPW. 在该示例中,密码设置为 wordsecret并由 base64 编码。

我们可能将olcRootPW线路更改为:

olcRootPW: plaintextpassword
olcRootPW:: base64decodedtext (in base64 method there is double `:` after attribute name)
olcRootPW: {SSHA}8IAb01fZAtNBH5F0n4x5t2WkmQbhZnWm (SSHA encoded password generated by `slappaswd` command)
Run Code Online (Sandbox Code Playgroud)

因此,如果您编辑数据库文件,它就完成了(我不确定slapd在编辑 ldif 文件时是否可能正在运行 - 停止它更安全)...但还有另一种选择...;)

如果您启用了config数据库,您可以使用任何 ldap 客户端绑定到它(我推荐Apache Directory Studio,它是非常棒的 ldap 客户端/编辑器)。当然,要绑定到该数据库,您必须了解olcRootDNolcRootPW为该后端配置。在这种情况下 BaseDN 必须设置为cn=config. 连接后用户名和密码在olcDatabase={1}bdb,cn=config.