注意问题1:

1, slap.conf配置文件中rootpw前不要有空格,鱼后面的密码是用tab隔开

2,在/etc/openldap/slap.d/cn=config下,查看一个文件olcDatabase\=\{1\}bdb.ldif

   查看里面的域,是否是我们定义的,如果不是,则删除/etc/openldap/slap.d/*

   然后重新生成:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

  然后重启slapd服务,注意,要将修改 /etc/openldap/slapd.d/下的用户所属人,chown -R ldap.ldap /etc/openldap/slapd.d/

  


openldap 2.4 安装配置详解

思路:

1,安装openldap服务包和依赖包

2,编写配置文件,并重建cn=config文件(这里在2.3版本中是不需要的)

3,启动ldap 服务



一,yum安装openldap

是用yum安装下面几个安装包(centos和redhat  版本6以上的镜像中ldap包都是2.4)

(虚拟机挂在镜像mount /dev/cdrom /media

 配置yum仓库

vim /etc/yum.d.repos/server.repo

[base]

name=centos

baseurl=file:///media

enabled=1

gpgcheck=0)

yum -y install  openssl*  openldap openldap-servers openldap-clients openldap-devel  compat-openldap 


如果没有yum,就可以去镜像中找到对应的rpm包,然后一次安装,过程中可能要解析包的依赖关系

二,配置openldap

配置文件/etc/openldap/

vim /etc/openldap/slapd.conf

database bdb

 suffix "dc=pincer,dc=com"

 checkpoint 1024 15

 rootdn "cn=Manager,dc=pincer,dc=com"

 # Cleartext passwords, especially for the rootdn, should

 # be avoided. See slappasswd(8) and slapd.conf(5) for details.

 # Use of strong authentication encouraged.

 # rootpw secret

 rootpw {SSHA}Qvk0Uy+q0yPhHFCiGzTzoo4I37LJPLgZ

directory /data/ldap


这里我们的根是dc=pincer,dc=com,管理员账号是cn=Manager,dc=pincer,dc=com

checkpoint 1024 15  这里可以忽略(意思是没1024个字节就写到BDB库中,或者15分钟后就写入) 

directory /data/ldap  这里我们是件数据文件都存放在/data/ldap下,ldap默认是存放 在/var/lib/ldap下

修改完成后,最简单的配置就结束 了


三,启动服务

2.4版本启动方式,启动脚本在/etc/init.d下,是一个shell脚本

/etc/init.d/slapd start

这样就启动了ldap 服务,可以看到此时监听在389端口了


到这个地方,虽然服务启用了,但是为来了,那么我们怎么导入数据,怎么操作呢,出错了应该这么解决了?


首先,不要高兴太早,因为目前的服务跟我们的配置是不显富的,因为我们修改了dc=pincer,dc=com,其实默认的dc还是配置文件中的默认值example-inc

为什么?


问的好,问题就在于/etc/openldap/slapd.d/cn=config/下

有个文件叫olcDatabase\=\{1\}bdb.ldif

我们可以cat看下这个文件,会发现我们的管理员账号还是cn=Manager,dc=example-inc,dc=com,并不是我们之前配置的dc=pincer,dc=com

下面我们要做的就是解决这个问题

1,停掉ldap服务,/etc/init.d/slapd stop

2,删除/etc/openldap/slapd.d/下的所有文件

rm -rf /etc/openldap/slapd.d/*

3,重新根据配置文件生存这些数据文件

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/


执行这个命令后,可能会报错,说/data/ldap下文件权限问题或者什么问题

这里都是因为生存的时候,文件所属人不对,

4,修改文件权限

chown -R /etc/oepnldap/*

chown -R /data/ldap

chown - R /data/ldap/*


5,然后再重启服务,

报错: 找不到DB_CONFIG文件,

这个文件是BDB的配置文件

2.4版本的openldap,默认存放在 /usr/share/doc/openldap-servers-2.4.43/下,只要将这里的文件复制到/data/ldap/下

然后修改文件所属人

chown ldap.ldap /data/ldap/DB_CONFIG

6,重启服务

/etc/init.d/slapd restart

重启ok



7,Q&A

这里可能很多人安装并不像我这么顺利,因为初学者安装的过程中会出现各种各样的问题,

那么问题来了,openldap最大的弊端就是大家对它的日志输出很不熟悉

这里列举下日子输出的类型吧

注意,日志级别如下所示:

-1记录所有的信息

0不记录debug

1跟踪功能调用的信息

2包处理的debug信息

4丰富的debug信息

8连接管理信息

16包的收发信息

32搜索过滤的处理过程

64配置文件的处理过程

128访问控制列表处理过程

256连接、操作及其结果的统计数据

512向客户端返回的结果的统计信息

1024与shell后端的通信信息

2048显示记录条目的分析信息

4096数据库缓存处理信息

8192数据库索引

16384从服务器数据同步资源消耗处理信息



那么,在启动服务中,遇到失败,或者没有任何把报错的情况下,应该怎么去排除呢?

这里推荐2个简单的办法:

1,一个是通过默认的slapd 守护进程去启动服务,

执行slapd -d 265 可以debug出启动服务的整个过程,可以从这里去查看日志中的问题

那么问题又来了,这里执行slapd 启动服务是没有问题的,但是在是用启动脚本启动的时候,发现还是起不来

使出绝招吧,查看下启动脚本中的代码,发现启动的时候是用的是这个命令

slapd -h  ldap:/// -u ldap 

这里我们直接执行

slapd -h ldap:/// -u ldap -f /etc/openldap/slapd.conf -d 265

这样就能按照我们的配置文件启动,并打印出启动过程的所有日志内容了