安装Berkeley DB 4.7.25
下载地址: http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz
安装openldap-2.4.15
下载地址: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.15.tgz
[root@localhost pack]# tar -zxvf db-4.7.25.tar.gz -C /usr/local/src/
[root@localhost pack]# cd /usr/local/src/db-4.7.25/
[root@localhost pack]# mkdir -p /usr/local/BerkeleyDB
[root@localhost db-4.7.25]# cd build_unix/
[root@localhost build_unix]# ../dist/configure –prefix=/usr/local/BerkeleyDB &&make && make install
安装完成后要执行执行
[root@localhost build_unix]# cp /usr/local/BerkeleyDB/include/* /usr/include/
[root@localhost build_unix]# cp /usr/local/BerkeleyDB/lib/* /usr/lib/
[root@localhost BerkeleyDB]# ldconfig -v
安装openldap-2.4.15
[root@localhost pack]# tar -zxvf openldap-2.4.15.tgz -C /usr/local/src/
[root@localhost pack]# cd /usr/local/src/
[root@localhost src]# cd openldap-2.4.15/
[root@localhost openldap-2.4.15]# ldconfig -v
[root@localhost openldap-2.4.15]# ./configure –prefix=/usr/local/openldap
##########执行configure后出现如下内容,则表示没有问题#########
Making servers/slapd/backends.c
Add config …
Add ldif …
Add monitor …
Add bdb …
Add hdb …
Add relay …
Making servers/slapd/overlays/statover.c
Add seqmod …
Add syncprov …
Please run "make depend" to build dependencies
###################
[root@localhost openldap-2.4.15]# make depend
[root@localhost openldap-2.4.15]# make
[root@localhost openldap-2.4.15]# make test ###看网上说这个过程很长,我现在才知道真长。运行了好久好久
————-废话分割线————-
>>>>> Test succeeded
>>>>> ./scripts/test001* completed OK.
….
>>>>> Test succeeded
>>>>> ./scripts/test055* completed OK.
….
….静静的等,注意查看界面是否有错误信息
>>>>> Test succeeded
>>>>> ./scripts/test016-subref completed OK.
>>>>> Starting test017-syncreplication-refresh …
….哦My,God,眼睛好累….Glad
….好久了,已经20分钟了,可能我虚拟出来的CPU差劲吧
Wait…
>>>>> Test succeeded
>>>>> ./scripts/test049-sync-config completed OK.
>>>>> Starting test050-syncrepl-multimaster …
应该快了?
好了,大概25分钟吧!很顺利下面是最后显示的信息,留个纪念吧~
>>>>> Test succeeded
>>>>> ./scripts/test054-syncreplication-parallel-load completed OK.
>>>>> Starting test055-valregex …
running defines.sh
Running slapadd to build slapd database…
Starting slapd on TCP/IP port 9011…
Testing attribute value regex subsitution…
# Try an attribute vale regex that match, but substitute does not
# this should fail
ldapmodify failed as expected
# Try an attribute vale regex that match and substitute does
# this should succeed
ldapmodify succeed as expected
>>>>> Test succeeded
>>>>> ./scripts/test055-valregex completed OK.
make[2]: Leaving directory `/usr/local/src/openldap-2.4.15/tests’
make[1]: Leaving directory `/usr/local/src/openldap-2.4.15/tests’
————-废话华丽结束线————-
[root@localhost openldap-2.4.15]# make install
成功了,安装成功了!!!赶紧做个镜像去~~我可不想以后修改上出了大问题然后在重安装。
明天开始大干
配置文件slapd.conf
/usr/local/openldap/etc/openldap
默认好像没添加那么多的schema
添加下面三条
include /usr/local/openldap/etc/openldap/schema/cosine.schema
include /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include /usr/local/openldap/etc/openldap/schema/nis.schema
修改
database bdb #数据库类型
suffix "dc=kinggoo,dc=com" #修改成你自己的
rootdn "cn=root,dc=kinggoo,dc=com" #修改成你自己的
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw openldap #密码,是明文的,如果需要加密可以
注释:(只是介绍一下openldap加密)
定 义超级管理员帐号的密码,这里使用的是明文存储(secret即是其密码)的方式。这是极不安全的,建议使用加密方式存储,可以使用的加密方式 有:CRYPT、MD5、SMD5、SHA和SSHA。产生加密密码散列的方法是使用 slappasswd命令,用-h选项指明加密时使用的方式。示例如下:
(/openldap/sbin/slappasswd -h {SSHA}– 自己选一种加密方式
New password:
Re-enter new password:
{SSHA}k2H1GPM/95VfgsKg2jZv9hV+2GCH04hC —-把这行字符包括{SSHA or MD5}拷贝进 slapd.conf 文件, 替换掉"secret")
注释完毕
注释掉#index objectClass eq
添加
index objectClass eq, pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
添加日志功能日志级别可以查看“man slapd.conf”
loglevel 1 #看自己定义了,我现在需要调试所以写成“1”
保存slapd.conf
然后向syslog.conf内添加Ldap日志
[root@localhost libexec]# vim /etc/syslog.conf
# Ldap log Path
local4.* /var/log/ldap.log
重新启动syslog服务
[root@localhost libexec]# service syslog restart
——
我多做了几部如下
[root@localhost libexec]# vim /etc/profile
添加了OPENLDAP_PATH变量
OPENLDAP_PATH=/usr/local/openldap
将变量OPENLDAP_PATH最佳到环境变量PATH
PATH=$PATH:$JAVA_HOME/bin:$OPENLDAP_PATH/bin:$OPENLDAP_PATH/sbin
在最下面加入unset OPENLDAP_PATH,使其临时变量失效
使其修改后配置文件生效(不然需要重新登陆才会生效)
[root@localhost libexec]# source /etc/profile
将openldap的lib添加到ld.so.conf(没多大用,只是为了防止错误)
[root@localhost libexec]# echo ”/usr/local/openldap/lib“ >> /etc/ld.so.conf
使其生效(不知道用不用添加include,不知道如何添加)
[root@localhost libexec]# ldconfig -v
如果本地自己搭建
请在修改/etc/hosts内添加一条记录
192.168.71.130 kinggoo.com kinggoo.com kinggoo
——
启动ldap
进入
[root@localhost libexec]# cd /usr/local/openldap/libexec
[root@localhost libexec]# ./slapd
可以去查看一下日志文件
~
报错如下:
[root@localhost sbin]# ./slaptest 执行一下测试文件
bdb_db_open: warning – no DB_CONFIG file found in directory /usr/local/openldap/var/openldap-data: (2).
Expect poor performance for suffix "dc=kinggoo,dc=com".
bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded
解决办法:
cp /usr/local/openldap/var/openldap-data/DB_CONFIG.example /usr/local/openldap/var/openldap-data/DB_CONFIG
————————
[root@localhost openldap]# ldapadd -x -D ‘cn=root,dc=kinggoo,dc=com’ -W 输入密码后,写入如下信息,记得后面不要有空格(你要把这里面的dc=kinggoo改成你自己的,不然会包(49)错误)
# kinggoo.com
dn: dc=kinggoo, dc=com
objectClass: dcObject
objectClass: organizationalUnit
dc: kinggoo
ou: kinggoo.com
##记得按Ctrl+D存盘(保存)
导入组和用户(应该可以不做的,到时crowd警告也没关系)
[root@localhost openldap]# vim people.lidf
输入:
# people, kinggoo.com
dn: ou=people,dc=kinggoo,dc=com
ou: people
objectClass: organizationalUnit
[root@localhost openldap]# vim group.lidf
输入:
# group, kinggoo.com
dn: ou=group,dc=kinggoo,dc=com
ou: group
objectClass: organizationalUnit
[root@localhost openldap]# slapadd -vl group.lidf
[root@localhost openldap]# slapadd -vl people.lidf
如果需要你在添加一个角色
一般不会出错,出错的话肯定是你dc没写对
查看一下刚刚加的数据
ldapsearch -x –D ‘cn=root,dc=kinggoo,dc=com’ -W
问题参考:
启动出现如下错误
tail -f /var/log/ldap.log
Aug 21 03:19:33 localhost slapd[20509]: bdb_db_open: Warning – No DB_CONFIG file found in directory /usr/local/openldap/var/openldap-data:
该正该错误
cp /usr/local/openldap/var/openldap-data/DB_CONFIG.example DB_CONFIG
当你ldapadd -x -D ‘cn=root,dc=kinggoo,dc=com’ -W 输入密码后成功后出现ldap_bind: Invalid credentials (49)错误,大
部分部分都是因为你的dc没有写对,比如你slapd.conf里面明明配置的是cn=root,dc=kinggoo,dc=com而你在执行的时候却写成了cn=root,dc=www.kinggoo,dc=com那一定会包49错误的
各种错误问题解释[ LDAP Troubleshooting ]