openldap安装

http://zhaoshijie.iteye.com/blog/819382

1.安装OpenSSL,安装路径 默认 : /usr/local/ ssl

tar -zxvf openssl-1.0.0d.tar.gz

cd openssl-1.0.0d

./Configure

make

make install

2.安装BerkeleyDB,安装路径默认: /usr/local/ BerkeleyDB.5.1

tar -zxvf db-5.1.25.tar.gz

cd db-5.1.25 

cd build_unix

../dist/configure


make

make install

安装完成后要将该软件的库路径/usr/local/BerkeleyDB.5.1/lib加入到/etc/ld.so.conf中,然后执行ldconfig使配置文件生效这样在编译openldap时候才能找到该库文件。ld.so.conf是系统动态链接库的配置文件,此文件中包含了可被Linux共享的动态链接库所在目录的名字(系统目录/lib,/usr/lib除外),各个目录之间以空格或者冒号或者逗号隔开。一般的Linux发行版中都含有/usr/X11R6/lib这个共享库,这是X Window窗口系统的动态链接库所在目录。ldconfig是他的管理命令。

如果你不按照上面的做法,也没有关系,只要把/usr/local/BerkeleyDB.4.5下面lib, include目录下面的所有文件,手动拷贝到/usr/lib和/usr/include目录下面就可以了.作用和前面修改配置文件相同,目的也是这样在编译openldap时候才能找到该库文件.
使用命令:
cp /usr/local/ BerkeleyDB.4.5/include/* /usr/include
cp /usr/local/ BerkeleyDB.4.5/lib/* /usr/lib

3.安装OpenLDAP 2.4.24 , 安装路径默认 :/usr/local/etc/openldap

tar -zxvf openldap-2.4.24.tgz

cd openldap-2.4.24

export CPPFLAGS="-I/usr/local/BerkeleyDB.5.1/include"

export LDFLAGS="-L/usr/local/lib -L/usr/local/BerkeleyDB.5.1/lib"

export CPPFLAGS="-I/usr/local/ssl/include"

export LDFLAGS="-L/usr/local/ssl/lib"

./configure --with-tls=openssl --enable-dynamic

一 旦你已运行 configure 脚本,那么 configure 脚本输出的最后一行应当是 Please "make depend" to build dependencies 
如果不是上面的这行的话,则说明 configure 脚本失败了,你需要参看它的输出来决定是在什么地方出了点问题。除非 configure 完全成功了,否则你不能进入到下一步

===================================================

env 
CPPFLAGS="-I/usr/local/BerkeleyDB.5.1/include" LDFLAGS="-L/usr/local/BerkeleyDB.5.1/lib" 
CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" 
./configure 
说明 : 将 BerkeleyDB.5.1 和 ssl 的 lib 和 include 在编译时临时加入到环境变量中 . 
使用./configure --with-tls=openssl --enable-dynamic解决configure: error: MozNSS not found - please specify the 
location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location) 
===================================================

make depend   ( 构建依赖关系 ) 
make 
make install

4. openldap 的启动 
使用命令 :/usr/local/libexec/slapd 
测试是否启动:ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts 
显示如下: 
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts 
#
#
dn:
namingContexts: dc=my-domain,dc=com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1

5. 用ldapadd向其中加入条目

信息的录入有三种方法,一种是手工录入,一种是.ldif文件格式录入,一种是脚本自动录入。我们先从最基础的手工 录入方式开始介绍,了解录入信息的格式。明白了手工录入的格式,其它两种方式都很容易明白。以下是手动录入信息的全过程

创立DN

[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:dc=mydomain,dc=com
objectclass:top
objectclass:dcobject
objectclass:organization
dc:mydomain
o:2012.Inc
adding new entry "dc=mydomain,dc=com"

[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:ou=zongbu,dc=mydomain,dc=com
ou: zongbu
objectclass: organizationalUnit
adding new entry "ou=zongbu,dc=mydomain,dc=com"

[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:ou=kuli,dc=mydomain,dc=com
ou:kuli
objectclass: organizationalUnit
adding new entry "ou=kuli,dc=mydomain,dc=com"

[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:ou=mm,dc=mydomain,dc=com
ou:mm
objectclass: organizationalUnit
adding new entry "ou=mm,dc=mydomain,dc=com"

[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:cn=lizhiling,ou=mm,dc=mydomain,dc=com
cn:lizhiling
sn:lin
objectclass:inetorgperson
adding new entry "cn=lizhiling,ou=mm,dc=mydomain,dc=com"

[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password:
dn:cn=angelababy,ou=mm,dc=mydomain,dc=com
cn:angelababy
sn:angel
objectclass:inetorgperson
adding new entry "cn=angelababy,ou=mm,dc=mydomain,dc=com" 

6. 使用ldapsearch命令查询“dc=mydomain, dc=com”下的所有条目

vigar@vigar-laptop:/usr/local/bin$ sudo ldapsearch -x  -b "dc=mydomain,dc=com"

# extended LDIF
#
# LDAPv3
# base <dc=mydomain,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL#


# mydomain.com
dn: dc=mydomain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: mydomain
o: 2012.Inc

# zongbu, mydomain.com
dn: ou=zongbu,dc=mydomain,dc=com
ou: zongbu
objectClass: organizationalUnit

# kuli, mydomain.com
dn: ou=kuli,dc=mydomain,dc=com
ou: kuli
objectClass: organizationalUnit

# mm, mydomain.com
dn: ou=mm,dc=mydomain,dc=com
ou: mm
objectClass: organizationalUnit

# lizhiling, mm, mydomain.com
dn: cn=lizhiling,ou=mm,dc=mydomain,dc=com
cn: lizhiling
sn: lin
objectClass: inetOrgPerson

# angelababy, mm, mydomain.com
dn: cn=angelababy,ou=mm,dc=mydomain,dc=com
cn: angelababy
sn: angel
objectClass: inetOrgPerson

# search result
search: 2
result: 0 Success

# numResponses: 7
# numEntries: 6



 

 7.在其它client端上用ldapBrowser连接, 先配置一个cfg文件,文件内容, 其中标红处要与ldap server上的slapd.conf中的内容对应

#################################
# LDAP Browser v2.8 config file #
#################################
basedn=dc=mydomain,dc=com
port=389
managerlogin=yes
managereferrals=no
limit=0
derefaliases=always
sslport=636
version=3
timeout=0
password=bugaosuni
host=10.0.2.8
managerdn=cn=Manager,dc=mydomain,dc=com

 连接效果如下

参考资料 

1. http://blog.csdn.net/njchenyi/article/details/2051293

 2. iPlanet Directory Server示例

http://docs.oracle.com/cd/E19199-01/816-6696-10/cmdline.html#14439

bash-3.2$ ldapsearch -h 10.0.32.13 -p 389 -D "uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot" -w admin -b  "ou=agent_section,ou=333,ou=885,ou=10.0.2.3,ou=invoker_RT,ou=ini,ou=2b,o=NetscapeRoot" -s sub "objectclass=*"
ou=agent_section,ou=333,ou=885, ou=10.0.2.3, ou=invoker_RT, ou=ini, ou=2b, o=NetscapeRoot
ou=agent_section
objectClass=top
$daemon_cmd=perl mm.pl
原文地址:https://www.cnblogs.com/vigarbuaa/p/2804216.html