Linux 安装并配置 OpenLDAP 新编(0)前言

Linux 安装并配置 OpenLDAP 新编(0)前言

大约在4月中旬的时候,同事发来一封邮件,是我们的一个大客户对于我们平台的安全调查问卷,其中有一部分是账户管理的,提到了是否实施了 LDAP 或者 AD 来统一管理软、硬件账户资产信息的。

一方面我兼管着部门的信息安全,这也确实是一个安全管理组成部分;再者又恰逢疫情,从3.28开始就在公司驻守,除了工作、学习也确实没别的事情可干。于是,就计划开始学习实施。刚开始,照我想来这种已经成熟了很多年的技术,应该很好实施的,结果没想到,前前后后、断断续续大约花了我半个多月的时间,直至5.1期间才算是基本搞明白。

在整个实施过程中,遇到的问题包括但不限于:

  • 官方资料的贫乏、疏漏甚至错误
  • 网络资料的陈旧、错误
  • 具体实施中的各种问题

官方的资料也是一大抄,自己抄自己。根据官方显示,从2.3版本开始就启用了新的动态配置引擎,换句话说就是用 LDIF 格式的配置文件,替代了 CONF 配置文件,然鹅,官方的资料过半还都是用 CONF 的格式进行配置的,甚至,还有 错误 的信息。

网络资料说起来就更是一把辛酸泪了,后来意识到,可能正因为 LDAP 实际上是一项古早而且应用场景远远大于实施场景,导致估计很少有人真正从头到尾操作过,都属于 设定先行

何谓设定先行?就是说多数都是对已有的系统进行修改、维护,已经假设了具备某种条件,才能进行的操作。何以为证?

  • 从2.4起,后端数据库不管怎么安装,默认都是 mdb ,那很多文档中上来就是 hdb 是从哪里来的?
  • 很多文档中确实都提醒了比如要注意区分 olcDatabase={2}hdb,cn=config 中索引号的不同,但是,为什么不同?为什么有-1、0、1、2这些数字?
  • CentOS8类似的系统中,取消了 OpenLDAP 的YUM源,一般都是改用 symas 提供的源。但是就没人注意2.4直接安装运行就能运行,2.5不先行配置直接运行会报错?
  • 在模块的使用中,上来就是 olcModuleLoad ,是否有注意过系统不同、安装方式不同这些模块的位置也不同,甚至不存在?
  • 在几乎所有的文章中,都会用到 -Q -Y EXTERNAL -H ldapi:/// 这样的参数来操作 LDAP ,有否讲过为什么?是否会遇到这个命令不能用的情况?
  • 等等……

当最终,达成了自己的目标回头再看这些问题的时候,才发现很多时候是大家都这么做,却甚少研究一下到底为什么这么做。除了一些官方都不给答案的,其他确实也只能管中窥豹、一叶知秋了。

知识准备

LDAP 是 Lightweight Directory Access Protocol 的简称,即简单目录访问协议。以下的术语会贯穿整个 LDAP 的学习:

  • DN (Distinguished Name) : 全局唯一的条目名称,可以理解为数据库中的主键。
  • RDN(Relation Distinguished Name) : 相对位置的唯一条目名称
  • DC (Domain Component) : 域名组成部分
  • CN (Common Name) : 通用名称
  • O(Organisation):组织
  • OU (Organisation Unit) : 组织单位

LDAP 的典型应用特征是,少存储多读取,即只需要少量的写操作,更多是进行读取的操作。

参考资料

posted @ 2022-05-04 10:03  雨帝夜泪  阅读(204)  评论(0编辑  收藏  举报