OpenLDAP Windows版本安装与配置——初用即过时

发布时间 2023-07-06 11:05:44作者: 人生是苦聚

序: Windows系统下的OpenLDAP,网上没找到比2.4.xx更加新的版本。很多文档写Windows下的OpenLDAP的安装和配置都很好,不过他们也没有预料Windows版本将发生的变化吧。

本着Windows下能用则用的目标,将2.4.49配置的特殊情况——即slapd.exe找不到"%SYSCONFDIR%\slapd.conf"的问题的解决方法留下来。另外,也当作我向Windows AD软件作者们的致敬!

本文有效期,预计和Windows 10相同。

 

对于刚接触LDAP的网友,可以先看一组OpenLDAP的简介

https://www.cnblogs.com/lfdblog/p/9803276.html     ldap 基本名词解释

http://www.ldap.org.cn/279.html         LDAP基础概念,我们将用到的 inetOrgPerson 对象类

 

初: 进入正题,有人介绍目前(2023年了)最新的linux的OpenLDAP已经放弃了slapd.conf文件,转而用命令行和一个个.ldif配置文件来完成配置。

在我找到的Windows下最高版本的2.4.49中已经初现端倪,安装出来的slapd.exe 无法识别到同目录下的slapd.conf,它会报错:

could not stat config file "%SYSCONFDIR%\slapd.conf": No such file or directory (2)

 安装包下载地址 https://www.maxcrc.de/en/download-en/  另有百都网盘一份 链接:https://pan.baidu.com/s/15J8EfkWrChn2JCyJWLb_Cg?pwd=digi   提取码:digi 

 安装过程指南 https://www.maxcrc.de/en/openldap-for-windows-installation-en/   我装的时候没有修改默认的密码secret,数据库我选了BDB (Berkley DB)

 

由于slapd.exe找不到"%SYSCONFDIR%\slapd.conf",安装OpenLDAP Service只会增加误解,所以去除。

 

数据库我选了BDB,看安装文档貌似BDB配置最简单。

 

再: 接着安装apache Directory Studio,或者直接用绿色解压缩版也可。

安装包和zip绿色包下载地址 https://directory.apache.org/studio/download/download-windows.html

此时的最新版是v2.0.0 M17

由于我对ldap或slap的命令行工具+.ldif格式文件的编写比较为难,所以基本上使用此Apache DS工具。后续内容也是基于此工具的。

还有一个纯浏览的工具LDAP Browser是可选项,下载地址 https://ldapbrowserwindows.com/

 

一,运行OpenLDAP Windows服务端

从命令行启动时,加上-f xx.conf参数指定slapd.conf 文件就可以了,但是不要立刻运行,因为这个文件里用的域名是maxcrc.com,要先把它改掉,比如mini3de.com:

 maxcrc.*.pem直接无视,因为我不知道怎么去申请或自制xx.com这种级别的pem证书。希望有才能的人补完吧, rootpw是secret,不变。

TLSCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH:!EXP:!SSLV2:!eNULL
TLSProtocolMin 3.3
TLSCertificateFile ./secure/certs/maxcrc.cert.pem
TLSCertificateKeyFile ./secure/certs/maxcrc.key.pem
TLSCACertificateFile ./secure/certs/maxcrc.cert.pem




#######################################################################
# bdb database definitions
#######################################################################


database    bdb
suffix        "dc=mini3de,dc=com"
rootdn        "cn=Manager,dc=mini3de,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw    {SSHA}QZlT0WNWU4nHvbD0U/D0xZks4wHA4jbc

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory ./data

用命令行启动slapd程序及参数

C:\Users\Administrator>cd C:\OpenLDAP

C:\OpenLDAP>.\slapd.exe -d 1 -f .\slapd.conf

会有一个warning - no DB_CONFIG file found in directory ./data: (2).  网上据说有一个DB_CONFIG.example复制过来就好了,可是在这个windows版本里没找到,继续无视。

warning - no DB_CONFIG file found in directory ./data: (2).

此时,可以用Apache Directory Studio 建立连接,Authentication Parameter设置Bind DN or User为slapd.conf文件的rootdn的值,设置Bind Password为rootpw的原始值,即安装时设置的secret。

 

成功登录后显示如下:

 如果想换一个域的话,先停止此slapd.exe,然后删除相对路径.\data目录中的全部文件,修改slapd.conf后再启动slapd。

以下链接是Apache DS的用法,特别是Schema浏览工具会用到。

https://www.cnblogs.com/somata/p/apacheDirectoryStudioSimpleUse.html   Apache Directory Studio 简易使用

https://www.cnblogs.com/it-abang/p/14311477.html  Apache DS创建根域名

https://juejin.cn/post/7090348803005349924 前半部分是使用Apache DS创建根域名与用户

https://juejin.cn/post/6877964799443992590   创建过程中的RDN是Relative distinguished name

https://www.cnblogs.com/yuluoxingkong/p/12198311.html   Windows下的安装和配置,用的是ldif配置文件

https://www.cnblogs.com/xzkzzz/p/9269714.html   ldap常用命令简介

 

二,建立一个体面的域名和子条目

可以看到此时的Apache DS 左侧的树根DIT下面什么都没有,连cn=Manager,dc=mini3de,dc=com也没有,真不知道它是怎么用这个dn登录上去的。

接下来需要创建dc=mini3de,dc=com的域。发现安装目录下,有一个maxcrc.ldif文件,其内容就是用来创建maxcrc.com域根的,稍加修改:

dn: dc=mini3de,dc=com
objectClass: domain
objectClass: top
dc: mini3de

dn: ou=People,dc=mini3de,dc=com
objectclass: top
objectclass: organizationalUnit
ou: People
description: Container for user entries

然后在Apache DS中,对DIT根点右键-->import菜单-->ldif文件,导入。

 导入成功后,可以看到新建的域根和People组织:

三, 新建用户账号

 此时可以在Apache DS中自由地创建组织或人员条目(Entry),注意创建人员地时候,object classes一般选择inetOrgPerson,此时它的父类型也自动被选入。

人员推荐用uid属性(Attribute)作为不重复的唯一标识,另外可以添加密码,使用userPassword属性。

  尝试发现可以新增RDN 为 cn=Manager的人员,故意设置了不同于默认的密码做测试,发现两个密码都能正常登录,可以算是少数的惊喜。

 设置RDN

 设置密码

 

以上。