OpenLDAP 的安装与部署 - Linux

OpenLDAP 的安装与部署 - Linux

OpenLDAP 是什么?

OpenLDAP 是一款轻量级目录访问协议(Lightweight Directory Access Protocol, LDAP), 属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。

LDAP 具有两个国家标准,分别是 X.500 和 LDAP。OpenLDAP 是基于 X.500 标准的,而且去除了 X.500 复杂的功能并且可以根据自我需求定制额外扩展功能,但是 X.500 也有不同之处,例如 OpenLDAP 支持 TCP/IP 协议等,目前 TCP/IP 是 Internet 上访问互联网的协议。

OpenLDAP 则直接运行在更简单和更通用的 TCP/IP 或其他可靠的传输协议层上,避免了在 OSI 会话层和表示层的开销,使连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想。LDAP 提供并实现目录服务的信息服务,目录服务是一种特殊的数据库,对于数据的读取、浏览、搜索有很好的效果。目录服务一般用来包含基于属性的描述性信息并支持精细复杂的过滤功能,但 OpenLDAP 目录服务不支持通用数据库的大量更新操作所需要的复杂的事务管理或回滚策略等。

OpenLDAP 默认以 Berkeley DB 作为后端数据库,Berkeley DB 数据库主要以散列的数据类型进行数据存储,如以键值对的方式进行存储。Berkeley DB 是一类特殊的数据库,主要作用于搜索、浏览、更新查询操作,一般用于一次写入数据、多次查询和搜索有很好的效果。Berkeley DB 数据库时面向查询进行优化,面向读取进行优化的数据库。Berkeley DB 不支持事务性数据库(MySQL、MariDB、Oracle 等)所支持的高并发的吞吐量以及复杂的事务操作。

OpenLDAP 目录中的信息是按树形结构进行组织的,具体信息存储在条目(entry)中,条目可以看成关系数据库中的表记录,条目是具有区别名(Distinguished Name,DN)的属性(attribute),DN 是用来引用条目,DN 相当于关系型数据库(MySQL 等)中的主键(primary key),是唯一的。属性由类型(type)和一个或多个值(value)组成,相当于关系型数据库中字段的概念。

来源:https://wiki.shileizcc.com/confluence/display/openldap/OpenLDAP

安装 OpenLDAP

  1. 使用 yum 安装(推荐)

    命令:yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

  2. 使用下载好的rpm进行安装(无网/内网环境下推荐)

    先在可以联网的机器下,下载好对应的 rpm 文件,然后拷贝到无网/内网环境下的机器。

    1. 先确保目标机器有安装好yum,需要用yum对下载好的rpm 进行本地安装,好处在于无需明确rpm的安装顺序,仅使用rpm 命令来安装,依照依赖顺序,一个一个安装rpm,很反人类。

    2. 在能联网的机器上通过yum 下载rpm,需要先安装yum-plugin-downloadonly

      命令:yum -y install yum-plugin-downloadonly

  3. yum-plugin-downloadonly 安装完成后,通过以下命令下载rpm

    命令:yum -y install --downloadonly --downloaddir=/xxx openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

    注意:–downloaddir=/xxx指定rpm的下载目录

    ldap - 1.png

    ldap - 2.png

    ldap - 3.png

    注意:

    我的虚拟机已经安装了一些rpm,实际上所需的 rpm包不止这些。

    yum -y install --downloadonly --downloaddir=/xxx rpm_name这个命令是有缺陷的,就是系统已有的rpm包,不会重复下载,所以建议在一个比较干净的虚拟机做这个事情。

  4. 通过 yum localinstall /usr/openldap/rpm/*.rpm 来安装 rpm

    ldap - 4.png

配置 OpenLDAP

查看 OpenLDAP 的版本

安装成功后,使用以下命令查看 OpenLDAP 的版本信息

slapd -VV

配置 OpenLDAP 的登录信息

  1. 需要先产生密码

    命令:slappasswd -s 12345678

    记录结果,这是加密后的结果:{SSHA}rjewoTmrrSYQGis4YddObtvK88G/amXy

  2. 创建用户跟根节点

    修改/etc/openldap/slapd.d/cn=config目录下的olcDatabase={2}hdb.ldif文件

例如,创建如下根节点、用户名称和密码

1
2
3
olcSuffix: c=cn
olcRootDN: cn=test,c=cn
olcRootPW: {SSHA}rjewoTmrrSYQGis4YddObtvK88G/amXy

其中:

1
2
3
olcSuffix: 为根节点
olcRootDN: 为访问LDAP的管理员
olcRootPW: 新增项,是步骤一产生的加密后的密码

将下图:

改为:

  1. 修改olcDatabase={1}monitor.ldif文件

    执行命令:vi olcDatabase\=\{1\}monitor.ldif

    将下图:

    改为:

    保存退出

  2. 进行校验

    使用slaptest -u,对配置内容进行校验

    checksum校验码出错无所谓,最后一句可行即可。

  3. 修改ldap.conf配置文件

    文件路径:/etc/openldap/ldap.conf

    将下图:

    改为:

    注意:URL后的内容填写服务器域名或者IP+端口(端口不写就是采用默认:389的),我填写的是自己虚拟机的地址。

  4. 重启OpenLDAP

    使用以下命令进行重启

    1
    2
    3
    systemctl restart slapd

    systemctl status slapd

用 ApacheDirectoryStudio 连接 OpenLDAP

可以采用 ApacheDirectoryStudio 工具测试连接是否成功。

Hostname:是步骤5写的URI

Port:缺省值是389,如果自行改了,则用改的那个

账户用步骤二设置的值,密码用步骤一加密之前的值

设置完后,点finish,出现最后一张图的情况,就是成功了