在 RHEL 6 中更改 OpenLDAP 配置

在 RHEL 6 中更改 OpenLDAP 配置

我一直在 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.

答案1

迁移到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

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

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

olcRootDN: cn=Manager,cn=config
olcRootPW:: c2VjcmV0

所以更改密码的第一种方法就是更改 的值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)

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

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

相关内容