You are here 博客 / Eric Tou的博客 / 【案例】Ubuntu LDAP配置

【案例】Ubuntu LDAP配置


By Eric Tou - Posted on 09 三月 2011

经过概要:

因为需要在Ubuntu上配置LDAP,首先以Ubuntu和LDAP作为关键字搜索,也浏览了OpenLDAP的官方文档。在阅读了大量文档后,发现自Ubuntu Server 10.04以后,已不再以.conf文件保存配置,之前收集的资料大部分已过时,还是 应该首先阅读Ubuntu官方文档 。

之后按照官方文档在最新的Ubuntu Server 10.10版本上开始安装,发现10.10的官方文档仅仅是复制了10.04,其中包含错误,会导致无法配置成功。认识到 Server版还是应该选择有长期支持的 LTS版本 。

之后在Ubuntu 10.04 LTS上重新开始配置LDAP,可能是配置途中犯错,始终无法顺利完成。因为 Ubuntu相关文档涉及到如何排查出现的LDAP错误的很少 (也可能是我搜索能力还不够),一度想要放弃,并且连带还对Ubuntu发行版有些腹诽。最后无奈只得再次重新安装,照本宣科,最终配置完成。

相关细节如下:

1.Ubuntu 10.04 OpenLDAP不再使用conf配置文件

Ubuntu的OpenLDAP一直都有变化,应该是从10.04开始,OpenLDAP不再使用conf配置文件,而是以LDAP记录的方式保存配置信息。 Ubuntu 10.04 OpenLDAP Server文档 中的说明如下:

OpenLDAP uses a separate directory which contains the cn=config Directory Information Tree (DIT). The cn=config DIT is used to dynamically configure the slapd daemon, allowing the modification of schema definitions, indexes, ACLs, etc without stopping the service.

网络上关于Ubuntu配置OpenLDAP的文档很多,但大多数基于10.04之前的版本,讲述的是如何修改conf配置文件,已经过期失效。

所以, 始终从官方文档开始会是一个好习惯 。

2.Ubuntu 10.10官方文档OpenLDAP的部分目前(2010-03)有错误

开始是在最新的Ubuntu Server 10.10上进行配置,不过 Ubuntu 10.10 OpenLDAP Server文档 目前(2010-03)存在错误,在添加backend.example.com.ldif时会出现如下错误:

ldap_add: Other (e.g., implementation specific) error (80)
additional info: <olcModuleLoad> handler exited with 1

经过一番搜索,找到了 解决方案 。文档有误,需要将backend.example.com.ldif中的 back_hdb 修改为 back_hdb.la 。

接着添加frontend.example.com.ldif时又出现以下错误:

ldap_bind invalid credentials (49)

这次就没有那么幸运,搜索返回的结果很少,和10.10相关的更是没有。

比较10.10和10.04的文档,发现完全一样。之后在10.04上配置OpenLDAP成功,说明10.10上的OpenLDAP程序又发生了变化,但是连官方文档都没有跟上,其它的文档就更少了。

所以,类似服务器操作系统之类的 技术选择不要选择最新,而应该选择稳定 。新(在其变得不新之前的一段时间内)往往意味着不稳定,相关支持信息较少。

3.Ubuntu的官方文档仍略有不足

鉴于10.10无法成功配置,考虑到10.04是 LTS版本 ,决定在10.04上进行配置。

按照10.04的文档可以成功配置OpenLDAP Server,但是如果在配置过程中由于输入错误导致出错就比较麻烦了,文档没有提示如何排查错误,搜索错误信息返回的结果也很少,出了错似乎只好从头开始。(也许是因为我搜索能力的关系)

所以在输入时要小心出错,争取添加配置信息一步成功。或者像我一样,用得是虚拟机,有快照备份。

必须承认,以上经历多少有些影响我对Ubuntu发行版(Server)的信心,不过 比较Linux发行版的优劣不容易也不很有意义 ,既然没有时间样样精通,就 坚持在熟悉的 Ubuntu吧,