OpenLDAP的安装配置[转]

 
OpenLDAP的安装配置
来源: ChinaUnix博客  日期: 2007.02.27 15:24 (共有条评论) 我要评论
 

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  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: [email protected]
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  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: [email protected]
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(  )
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"

你可能感兴趣的:(linux)