环境:centos 5.8
安装:
1、yum安装oepnldap、openldap-servers、openldap-clients、openldap-devel
[root@hao-linux ~]#yum -y install openldap openldap-servers openldap-clients openldap-devel
2、查看openldap安装
[root@hao-linux
~]#rpm -qa|grep openldap
3、复制DB_CONFIG.example到/var/lib/ldap/下并改名为DB_CONFIG。
[root@hao-linux
~]#cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
4、设置slapd.conf文件
[root@hao-linux
~]#vim /etc/openldap/slapd.conf
修改suffix、rootdn、rootpw为自己设定的参数:
suffix
“dc=sxis,dc=com”
rootdn “cn=admin,dc=sxis,dc=com”
rootpw secret #管理员的密码默认被注释,需删除注释(去掉rootpw前面的空格)
suffix设定的是单位(根),rootdn设定的是LDAP的管理员,rootpw设定的是LDAP管理员的密码。
管理员密码有明文与加密两种,明文直接修改就好了。
管理员加密密码设定方式:
[root@hao-linux
~]# slappasswd
New password:123456
Re-enter new password:123456
{SSHA}obu6Qmo1rPIcJBh+dqHvFEY9TE2aV1Ti
接下来把{SSHA}obu6Qmo1rPIcJBh+dqHvFEY9TE2aV1Ti复制到/etc/openldap/slapd.conf文件文件中的rootpw后替换secret就行了。
5、录入信息档案,一般记录信息的档案格式为*.ldif。
[root@hao-linux
~]# vi dc.ldif
dn:
dc=sxis,dc=com
dc: sxis
objectClass: dcObject
objectClass: organizationalUnit
ou: sxis.com
使用slapadd新增:
[root@hao-linux
~]# slapadd -v -l dc.ldif
新增成功:added: “dc=sxis,dc=com” (00000001)
编写ou.ldif:
[root@hao-linux
~]# vi ou.ldif
#jishu
top
dn: ou=jishu,dc=sxis,dc=com
ou: jishu
objectClass: organizationalUnit
#xiaoshou
top
dn: ou=xiaoshou,dc=sxis,dc=com
ou: xiaoshou
objectClass: organizationalUnit
#qiye>xiaoshou
dn: ou=qiye,ou=xiaoshou,dc=sxis,dc=com
ou: qiye
objectClass: organizationalUnit
注:每一笔新的记录与前一笔记录要使用一行空白来隔开表示、区分。
每一笔新记录开头必须要用dn的完整值表示。
使用slapadd录入:
[root@hao-linux
~]# slapadd -v -l ou.ldif
added:
“ou=jishu,dc=sxis,dc=com” (00000002)
added: “ou=xiaoshou,dc=sxis,dc=com” (00000003)
added: “ou=qiye,ou=xiaoshou,dc=sxis,dc=com” (00000004) 成功!
6、更改/var/lib/ldap权限
[root@hao-linux
lib]# chown -R ldap.ldap /var/lib/ldap/
如不赋权启动是会出现错误:
/var/lib/ldap/dn2id.bdb
is not owned by “ldap” [警告]
/var/lib/ldap/__db.004 is not owned by “ldap” [警告]
/var/lib/ldap/id2entry.bdb is not owned by “ldap” [警告]
/var/lib/ldap/__db.001 is not owned by “ldap” [警告]
/var/lib/ldap/__db.006 is not owned by “ldap” [警告]
/var/lib/ldap/__db.002 is not owned by “ldap” [警告]
/var/lib/ldap/ou.bdb is not owned by “ldap” [警告]
/var/lib/ldap/objectClass.bdb is not owned by “ldap” [警告]
/var/lib/ldap/__db.005 is not owned by “ldap” [警告]
/var/lib/ldap/__db.003 is not owned by “ldap” [警告]
启动 slapd: [确定]
7、启动ldap服务:
[root@hao-linux
lib]# service ldap start
8、查看ldap资料库:
[root@hao-linux
lib]# ldapsearch -x -b “dc=sxis,dc=com”
#
extended LDIF
# LDAPv3
# base <dc=sxis,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## extended LDIF
# LDAPv3
# base <dc=sxis,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# sxis.com
dn: dc=sxis,dc=com
dc: sxis
objectClass: dcObject
objectClass: organizationalUnit
ou: sxis.com
#
jishu, sxis.com
dn: ou=jishu,dc=sxis,dc=com
ou: jishu
objectClass: organizationalUnit
#
xiaoshou, sxis.com
dn: ou=xiaoshou,dc=sxis,dc=com
ou: xiaoshou
objectClass: organizationalUnit
#
qiye, xiaoshou, sxis.com
dn: ou=qiye,ou=xiaoshou,dc=sxis,dc=com
ou: qiye
objectClass: organizationalUnit
#
search result
search: 2
result: 0 Success
#
numResponses: 5
# numEntries: 4
9、新建user.ldif
[root@hao-linux
~]# vim user.ldif
dn:
cn=dyy,ou=jishu,dc=sxis,dc=com
cn: dyy
sn: N/A
objectclass: person
objectclass: inetOrgPerson
givenName: cn
mail: @sxis.com
telephoneNumber: 010-52026890
postalAddress: N/A
postalCode: 100020
ou: jishu
o: sxis tech
labeledURI: http://www.sxis.com/
title: cs
userPassword: 123456
录入user.ldif到ldap:
ldapmodify
-D “cn=admin,dc=sxis,dc=com” -w 123456 -x -a -f user.ldif
adding
new entry “cn=dyy,ou=jishu,dc=sxis,dc=com”
成功!
后记:录入资料命令有两种:一种为:slapadd 另一种为:ldapadd 前者在未启动ldap服务时使用,后者在已启动ldap服务时使用。
OpenLDAP目录讲解:
topldap的安装目录:/usr/local/topldap
OpenLDAP目录讲解:
topldap的安装目录:/usr/local/topldap
|-slapd 目录服务的主要程序
|-slurpd 目录服务进行复制的程序
|-slapadd 向目录中添加数据
|-slapcat 把目录中的条目导出成ldif文件
|-slapindex 重建目录的索引
|-ldapcompare 对目录的条目的属性进行比较
|-ldapadd 向目录服务中添加条目
|-ldapdelete 删除目录中的条目
|-ldapmodify 更新目录中条目的值
|-ldapmodrdn 更改条目的DN
|-ldappasswd 更改条目的密码
|-ldapsearch 对目录进行查询
|—include 目录服务的c的.h文件
|—lib 目录服务的c的连接文件
|—man 说明文档
|—topldap-data 存放目录所存储的数据
|—topldap-slurpd 存放目录进行复制时文件
|—topldap
|-slapd.conf 目录服务服务器端主要的配置文件
|-ldap.conf 客户端的配置文件
启动目录服务:
/usr/local/topldap/slapd -d 256
停止服务:
/usr/local/topldap/stopslapd、如果在debug模式,按下Ctrl+c终止服务就行了
启动目录的复制服务
/usr/local/topldap/slurpd -d 4
配置文件:
/usr/local/topldap/topldap/slapd.conf
常用命令介绍
slapd
4 使用IPv4标准
6 使用IPv6标准
-d debug模式 一般用 -1,1,256
-f 指定配置文件的路径
-h 可以指定启动服务的端口 ldap://:2004 用2004端口启动服务
slurpd
-d debug模式 一般用4
-f 指定配置文件
-r 指定复制
ldapadd
-x 进行简单认证
-D 用来绑定服务器的DN
-h 目录服务的地址
-w 绑定DN的密码
-f 使用ldif文件进行条目添加的文件
例子 ldapadd -x -D “cn=root,dc=starxing,dc=com” -w secret -f /root/test.ldif
ldapadd -x -D “cn=root,dc=starxing,dc=com” -w secret (这样写就是在命令行添加条目)
ldapsearch
-x 进行简单认证
-D 用来绑定服务器的DN
-w 绑定DN的密码
-b 指定要查询的根节点
-H 制定要查询的服务器
ldapsearch -x -D “cn=root,dc=starxing,dc=com” -w secret -b “dc=starxing,dc=com”
使用简单认证,用 “cn=root,dc=starxing,dc=com”
进行绑定,
要查询的根是 “dc=starxing,dc=com”.这样会把绑定的用户能访问”dc=starxing,dc=com”下的
所有数据显示出来.
ldapdelete
参数和ldapadd差不多,就不写了
ldapdelete -x -D ‘cn=root,dc=it,dc=com’ -w secert ‘uid=zyx,dc=it,dc=com’
这样就可以删除’uid=zyx,dc=it,dc=com’记录了,应该注意一点,如果o或ou中有成员是不能删除的.
ldappasswd
-x 进行简单认证
-D 用来绑定服务器的DN
-w 绑定DN的密码
-S 提示的输入密码
-s pass 把密码设置为pass
-a pass 设置old passwd为pass
-A 提示的设置old passwd
-H 是指要绑定的服务器
-I 使用sasl会话方式
#ldappasswd -x -D ‘cm=root,dc=it,dc=com’ -w secret ‘uid=zyx,dc=it,dc=com’ -S
New password:
Re-enter new password:
就可以更改密码了,如果原来记录中没有密码,将会自动生成一个userPassword.
ldapmodify
-a 添加新的条目.缺省的是修改存在的条目.
-C 自动追踪引用.
-c 出错后继续执行程序并不中止.缺省情况下出错的立即停止.比如如果你的ldif 文
件内的某个条目在数据库内并不存在,缺省情况下程序立即退出,但如果使用了该参数,程
序忽略该错误继续执行.
-n 用于调试到服务器的通讯.但并不实际执行搜索.服务器关闭时,返回错误;服务器
打开时,常和-v 参数一起测试到服务器是否是一条通路.
-v 运行在详细模块.在标准输出中打出一些比较详细的信息.比如:连接到服务器的
ip 地址和端口号等.
-M[M] 打开manage DSA IT 控制. -MM 把该控制设置为重要的.
-f file 从文件内读取条目的修改信息而不是从标准输入读取.
-x 使用简单认证.
-D binddn 指定搜索的用户名(一般为一dn 值).
-W 指定了该参数,系统将弹出一提示入用户的密码.它和-w 参数相对使用.
-w bindpasswd 直接指定用户的密码. 它和-W 参数相对使用.
-H ldapuri 指定连接到服务器uri(ip 地址和端口号,常见格式为
ldap://hostname:port).如果使用了-H 就不能使用-h 和-p 参数.
-h ldaphost 指定要连接的主机的名称/ip 地址.它和-p 一起使用.
-p ldapport 指定要连接目录服务器的端口号.它和-h
一起使用.
如果使用了-h 和-p 参数就不能使用-H 参数.
-Z[Z] 使用StartTLS 扩展操作.如果使用-ZZ,命令强制使用StartTLS 握手成功.
-V 启用证书认证功能,目录服务器使用客户端证书进行身份验证,必须与-ZZ 强制启用
TLS 方式配合使用,并且匿名绑定到目录服务器.
-e 设置客户端证书文件,例: -e
cert/client.crt
-E 设置客户端证书私钥文件,例: -E
cert/client.key
#ldapmodify -x -D “cn=root,dc=it,dc=com” -W -f modify.ldif
将modify.ldif中的记录更新原有的记录