首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > OpenLDAP的安装配置
【标  题】:OpenLDAP的安装配置
【关键字】:OpenLDAP
【来  源】:http://www.cublog.cn/u/6418/showart.php?id=250663

OpenLDAP的安装配置

OpenLDAP的安装配制

主页: http://www.openldap.org/

文档: OpenLDAP Admin Guide

Manual Pages

bf 当前版本: OpenLDAP 2.3.31

3.1 安装

当前(Debian/testing)提供的OpenLDAP的版本是: bf 2.3.25-1

        
$ sudo aptitude install slapd ldap-utils
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
Building tag database... Done
The following NEW packages will be automatically installed:
db4.2-util libiodbc2 libldap-2.3-0
The following NEW packages will be installed:
db4.2-util ldap-utils libiodbc2 libldap-2.3-0 slapd
0 packages upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 1791kB of archives. After unpacking 4502kB will be used.
Do you want to continue? [Y/n/?]Y

其中:

slapd 提供LDAP服务

ldap-utils 提供客户工具

安装完毕后, 其配制文件位于/etc/ldap/目录下:

        
tony@tonybox:~$ ls -l /etc/ldap/
total 16
-rw-r--r-- 1 root root 333 2006-06-19 17:56 ldap.conf
drwxr-xr-x 2 root root 4096 2006-12-29 11:33 schema
-rw------- 1 root root 4351 2006-12-29 11:33 slapd.conf

/etc/ldap/schema/目录下为schema文件

        
$ ls /etc/ldap/schema/ -l
total 208
-rw-r--r-- 1 root root 8231 2006-11-11 05:39 corba.schema
-rw-r--r-- 1 root root 20591 2006-11-11 05:39 core.ldif
-rw-r--r-- 1 root root 19762 2006-11-11 05:39 core.schema
-rw-r--r-- 1 root root 74080 2006-11-11 05:39 cosine.schema
-rw-r--r-- 1 root root 1553 2006-11-11 05:39 dyngroup.schema
-rw-r--r-- 1 root root 6360 2006-11-11 05:39 inetorgperson.schema
-rw-r--r-- 1 root root 13984 2006-11-11 05:39 java.schema
-rw-r--r-- 1 root root 2471 2006-11-11 05:39 misc.schema
-rw-r--r-- 1 root root 7723 2006-11-11 05:39 nis.schema
-rw-r--r-- 1 root root 3391 2006-11-11 05:39 openldap.ldif
-rw-r--r-- 1 root root 1601 2006-11-11 05:39 openldap.schema
-rw-r--r-- 1 root root 19689 2006-11-11 05:39 ppolicy.schema
-rw-r--r-- 1 root root 2968 2006-11-11 05:39 README

3.2 启动与停止

服务启动

        
$ sudo /etc/init.d/slapd start

服务停止

$ sudo /etc/init.d/slapd  stop

服务重启

        
$ sudo /etc/init.d/slapd restsart

可以通过以下命令查看slapd是否启动

$  ps aux |grep slapd
openldap 6406 0.0 0.2 14608 2764 ? Ssl 13:27 0:00 /usr/sbin/slapd -g openldap -u openldap
tony 6417 0.0 0.0 4892 752 pts/1 R+ 13:28 0:00 grep slapd

3.3 配制

比如说我们的域名是debsir.org, 在配制文件/etc/ldap/slapd.conf中可以做如下调整

database        bdb                                     #设置使用的资料库
suffix "dc=debsir,dc=org" #设置目录后缀
rootdn "cn=admin,dc=debsir,dc=org" #设置目录管理员
directory "/var/lib/ldap" #设置数据库路径
rootpw secret #设置管理密码

这里用了明文的“secret”密码。这样设置不安全,如果需使用加密的密码,则可以借助slappasswd 命令 比如:

$ slappasswd -h {MD5}
New password:
Re-enter new password:
{MD5}4QrcOUm6Wau+VuBX8g+IPg==

其中使用-h 选项用于指定加密方式, 它支持{CRYPT}, {MD5}, {SMD5}, {SSHA}, 和 {SHA} 方式

然后修改/etc/ldap/slapd.conf 中的rootpw 行为:

rootpw          {MD5}4QrcOUm6Wau+VuBX8g+IPg==
修改后,需要重启slapd服务
        
$ sudo /etc/init.d/slapd restsart

这时可以使用客户端工具ldapsearch连接服务器查看目录信息:

~$ ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
如果命令执行成功,返回一些信息,则说明服务器正常运行了

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=debsir,dc=org

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
或者
$ ldapsearch -x -b dc=debsir,dc=org
# extended LDIF
#
# LDAPv3
# base <dc=debsir,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# debsir.org
dn: dc=debsir,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: debsir.org
dc: debsir

# admin, debsir.org
dn: cn=admin,dc=debsir,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

如果启动不成功,它会提示一些出错信息,多数是slapd.conf配置出错。回头仔细核查一下配置文档。

3.4 客户端配置文档

客户端配置文档是ldap.conf。该文档相当简单,其实不用配置也能正常操作。

BASE    dc=it, dc=com  #设置目录起点
URI ldap://localhost ldap://localhost:666

3.5 数据录入

定义一个组织单元

创建文件group.ldif,内容如下:

        
dn: ou=people,dc=debsir,dc=org
objectClass: organizationalUnit
ou: people

创建用户

创建文件person.ldif,内容如下:

                
dn: cn=tony,ou=people,dc=debsir,dc=org
objectClass: inetOrgPerson
objectClass: top
cn: tony
sn: an
givenName: an
displayName: Tony an
mail: etony@tom.com
postalCode: 330005
telephoneNumber: 12345678
mobile: 12345678912
homePhone: 9999999
title: System Administrator
postalAddress: Guiyang, China

* dn唯一地确定了这个对象的位置

* objectClass确定了这个对象所具有的属性

* objectClass可以有多个

注意每行后面不要留有空格。

3. 将信息添加到数据库

        
$ ldapadd -x -D cn=admin,dc=debsir,dc=org -W -f group.ldif
Enter LDAP Password:
adding new entry "ou=people,dc=debsir,dc=org"
        
tony@tonybox:~$ ldapadd -x -D cn=admin,dc=debsir,dc=org -W -f person.ldif
Enter LDAP Password:
adding new entry "cn=tony,ou=people,dc=debsir,dc=org"

其中

* x,使用简单认证方式

* -v,输出更多信息

* -D cn=admin,dc=cg,dc=com,dc=cn,使用此用户进行增加操作,显然用管理员比较好使,增加用户的权限不是谁都有的

* -W,提示输入密码,也可以在命令行里面给出密码,这时的参数应该是 -w password,这对于脚本来说比较方便

4.查看

然后可以用以下命令查看录入信息

        
~$ ldapsearch -x -b cn=tony,ou=people,dc=debsir,dc=org
# extended LDIF
#
# LDAPv3
# base <cn=tony,ou=people,dc=debsir,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# tony, people, debsir.org
dn: cn=tony,ou=people,dc=debsir,dc=org
objectClass: inetOrgPerson
objectClass: top
cn: tony
sn: an
givenName: an
displayName: Tony an
mail: etony@tom.com
postalCode: 330005
telephoneNumber: 12345678
mobile: 12345678912
homePhone: 9999999
title: System Administrator
postalAddress: Guiyang, China

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

3.6 权限定义

        
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=debsir,dc=org" write
by anonymous auth
by self write
by * none

access to *
by dn="cn=admin,dc=debsir,dc=org" write
by * read

3.7 常用操作

修改密码

                
$ ldappasswd -x -v -S -W -D cn=admin,dc=debsir,dc=org cn=tony,ou=people,dc=debsir,dc=org
New password:
Re-enter new password:
Enter LDAP Password:
ldap_initialize( <DEFAULT> )
Result: Success (0)

* S 参数是要求命令提示用户输入两次新的密码,来确认密码更新,使用 -s newpasswd 可以在命令行中指定新密码。

删除对象

删除对象的命令则是 ldapdelete,也要指定两个对象,哪个对象删除和删除哪个对象

                
ldapdelete -x -v -W -D cn=admin,dc=debsir,dc=org cn=tony,ou=people,dc=debsir,dc=org

修改对象

        
$ ldapmodify -x -D cn=admin,dc=debsir,dc=org -W -f person.ldif
Enter LDAP Password:
modifying entry "cn=tony,ou=people,dc=debsir,dc=org"

关于inittab的解读(以RedHat版本为例):【上一篇】
总结 tar: file name too long:【下一篇】
【相关文章】
  • Openldap安装实录
  • how to add sudo into openldap?
  • 关于openldap的安装与配置
  • 连接OpenLDAP时,设定Network Time out时间的方法
  • 关于OpenLDAP查询以后的内存释放
  • openLDAP 初次尝试
  • OpenLDAP+FreeRADIUS+MySQL+RP-PPPOE 构建PPPOE服务器
  • Red Hat Enterprise Linux4.0下OpenLDAP 2.3.24的安装
  • OpenLDAP管理员指南
  • OpenLDAP Software 2.3 Administrator's Guide
  • 【随机文章】
  • Intel与AMD新双核服务器平台的较量
  • phpmailer(Full featured email transfer class for )
  • 步长法-解决判断循环链表
  • linux下的数据报文截获机制(转载)
  • 为了开发省力一点_做个分级树
  • 想成为晕到死破落个烂马应知道的几个基本问题
  • C语言函数大全(s开头) (2)
  • 鼠标在UNIX系统中的应用程序中的使用
  • CSS容器属性三
  • 水晶报表使用经验谈2--使用sql语句直接生成dataset做为报表的数据源!
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.