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 的典型应用特征是,少存储多读取,即只需要少量的写操作,更多是进行读取的操作。
参考资料
曾经我以为我是个程序员攻城狮,,现在我发现,必须要要前面加上“广告公司”四字。