注意问题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
这样就能按照我们的配置文件启动,并打印出启动过程的所有日志内容了