我正在尝试设置一个测试 openldap 服务器,之前从未使用过 openldap。我在基于 redhat 的机器上使用标准 openldap-servers 包(使用 Oracle Linux)。我已经安装了这些包,并启动了服务器。
我现在不知道如何让服务器真正地做一些有用的事情;我无法使用 luma 浏览它(尝试访问顶级条目时出现“没有这样的对象”),openldap 文档对于如何真正让服务器进行基本的工作配置很晦涩,并且在线的所有信息都是针对旧的 slapd.conf 文件,而不是新的 slapd.d 和 cn=config。
我如何获得一个原始打包的 openldap 安装,以便我可以浏览到 luma 中的根 dn?
答案1
我感受到你的痛苦。
试试这个(它在 Scientific Linux 6.5 上测试过,所以它也应该在 OL 上运行):
- 安装 OpenLDAP 服务器
yum install openldap-servers openldap-clients
:) - 开始
slapd
:(service slapd start
也许chkconfig slapd on
) cn=config
使用 为 和您的普通 LDAP 管理员用户创建密码slappasswd
。记下此输出。- 创建具有以下内容的 LDIF 文件:
dn:olcDatabase={0}config,cn=config 变更类型:修改 添加:olcRootPW olcRootPW:{SSHA}TXcmvaldskl312012cKsPK1cY2321+aj dn:olcDatabase={2}bdb,cn=config 变更类型:修改 添加:olcRootPW olcRootPW:{SSHA}TXcmvaldskl312012cKsPK1cY2321+aj - 替换:olcRootDN olcRootDN:cn=admin,dc=your,dc=base,dc=com - 替换:olcSuffix olc后缀:dc=your,dc=base,dc=com
- 的值应该被您之前记下
olcRootPW
的输出替换。slappaswd
- 当然,
olcSuffix
并且olcRootDN
应该适应您的新基础 DN。 使用以下命令将所有这些提供给 LDAP 服务器:
ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif
此后,您应该能够通过 LDAP 连接到cn=config
两者dc=your,dc=base,dc=com
。
答案2
在启动 OpenLDAP 服务器之前,您需要先设置一些东西。
基本配置
您需要设置 root 用户和密码,并定义基本 DN。在 中slapd.conf
,查找以下行,并将它们设置为所需的值。
suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"
suffix
通常,您的基本 DN(在文件中定义为)是您的域名的组成部分,以逗号分隔并以 为前缀dc=
。因此,serverfault.com
可能会变成dc=serverfault,dc=com
。您的rootdn
必须位于该后缀下。
您还需要更改定义 root 密码的行。您可以将其设置为纯文本值,或使用它slappasswd
来创建哈希值。然后,您需要将纯文本值或哈希值放在slappasswd
如下所示的行中:
rootpw myultrasecurepassword
架构
此时开始考虑要使用的架构是一个好主意。架构定义对象可以具有的属性,因此您需要包含包含所需属性的架构。这些架构包含在 的顶部slapd.conf
,这里的架构通常是您需要的绝对基本架构:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
这些路径是 Arch Linux 中使用的路径,因此您可能需要调整它们以适合 Oracle Linux。
关于slapd.conf
vsslapd.d
OpenLDAP 已从离线配置(在 中完成slapd.conf
)切换到在线配置,将数据存储在cn=config
中的特殊树中slapd.d
。修改ldif
slapd.d
slapd.conf
是一个痛苦的过程,因此像上面那样编辑然后将其转换为新格式要容易得多slapd.d
。
首先,删除 中的所有内容slapd.d
。接下来,运行以下命令,确保调整 Oracle Linux 的路径:
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
然后,只需将所有者递归地设置为该目录上的 LDAP 用户和组,就可以开始了。每次编辑时都需要这样做slapd.conf
- 请记住在执行此操作之前停止 OpenLDAP 服务器!
初次运行
在实际使用目录之前,您需要创建基本 DN(和 root 用户)。创建一个.ldif
文件,其中包含类似以下内容的行:
dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example
dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root
现在启动 OpenLDAP 服务器。我们只需要将该信息推送到 LDAP 目录中:
ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif
显然,更改根 DN 和 ldif 文件名以匹配您所拥有的内容。
现在您应该已经设置好了一个可用的 LDAP 目录并准备进行填充!
Arch Linux wiki 是有关此主题的重要信息来源 - 请参阅https://wiki.archlinux.org/index.php/OpenLDAP和https://wiki.archlinux.org/index.php/LDAP_Authentication如果你想了解更多。