使用slapd.d配置的基本openldap设置


14

我试图建立一个测试openldap服务器,以前没有使用过openldap。我在基于redhat的计算机上使用标准的openldap-servers软件包(使用Oracle Linux)。我已经安装了软件包,并启动了服务器。

我现在不知道如何真正让服务器做一些有用的事情。我无法使用luma浏览该文件(尝试访问顶级条目时为“ No such object”),openldap文档对于您如何将服务器实际安装到基本正常工作状态以及所有在线信息都感到困惑用于旧的slapd.conf文件,而不是新的slapd.d和cn = config。

如何获得香草包装的openldap安装程序,在其中可以浏览luma的根dn?

Answers:


20

我感到你很痛苦。

尝试一下(它已在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
olcSuffix:dc = your,dc = base,dc = com
  • 的值olcRootPW应替换为slappaswd前面提到的输出。
  • 当然,olcSuffixolcRootDN应适应新的基本DN。
  • 使用以下命令将所有信息提供给LDAP服务器:

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

之后,您应该能够同时通过LDAP cn=configdc=your,dc=base,dc=comLDAP 连接。


7
谢谢,这就像是初学者的噩梦。有配置,但是在slap.d / *的第一行中-不要编辑,而所有方法/入门/指南都讲述“在您喜欢的编辑器中打开配置”
fghj 2014年

9

在启动OpenLDAP服务器之前,需要首先进行一些设置。

基本配置

您需要设置root用户和密码,以及定义基本DN。在中slapd.conf,查找以下各行,并将其设置为所需的值。

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

通常,基本DN(suffix在文件中定义)是域名的组成部分,以逗号分隔并以开头dc=。因此,serverfault.com可能成为dc=serverfault,dc=com。您rootdn必须使用该后缀。

您还需要更改定义根密码的行。您可以将其设置为纯文本值,或用于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.confvsslapd.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/OpenLDAPhttps://wiki.archlinux.org/index.php/LDAP_Authentication。了解更多。


这其中大部分已经被包管理器完成,并继续通过管理配置slapd.confslaptest在服务器停止跳动的在线配置的目的。
斯文

2
对于初始配置来说,它slapd.conf工作得很好,并且肯定比slapd.d直接编辑更直观。我不知道Oracle Linux中的程序包管理器完成了多少目录,但是如果OP无法访问基本DN,那么它就不够用了
Xenopathic 2014年

1
接受的答案包含了我所需的信息,但是有关创建初始对象的信息也很有用
thecoop 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.