分类:
2010-08-12 14:58:37
在企业内部网络环境应用中,使用ldap目录服务架设通讯录服务器与邮件收发用户端软件(outlook express、microsoft outlook 200x等)整合,可实现企业内部通讯录共享,同步更新、集中式管理与维护等功能。此文不涉及ldap工作原理及数据存储结构等高深内容,只是一篇简单实用的操作手册,以便于网络管理员快速架设服务于所属公司的通讯录服务器。本文以下设置全部基于linux fedora 3操作系统。
一、Open ldap软件的安装
查看系统中是否已经安装了ldap软件包(四个)
[root@mailtest ~]# rpm -qa |grep openldap
openldap-2.2.29-1.FC3
openldap-servers-2.2.29-1.FC3
openldap-devel-2.2.29-1.FC3
openldap-clients-2.2.29-1.FC3
如果没有显示以上所显示的四个软件包,可使用yum工具进行以上软件包的安装,运行yum工具之前,请连通网络,保证此台服务器可以访问Internet,第一次使用yum会提示注册GPG Keys的错误信息,可运行以下命令解决。
[root@mailtest ~]#rpm --imp
使用yum工具安装openldap软件包,可运行以下命令逐个安装。
[root@mailtest ~]#yum install openldap
[root@mailtest ~]#yum install openldap-devel
[root@mailtest ~]#yum install openldap-servers
[root@mailtest ~]#yum install openldap-clients
另外如果觉得使用yum安装不习惯,也可以至网上下载以上四个rpm软件包进行安装,这里就不在详述。
二、Open ldap配置档设定
Open ldap 主要配置档文件为:/etc/openldap/slapd.conf。
[root@mailtest ~]# vi /etc/openldap/slapd.conf
将第69行:suffix "dc=my-domain,dc=com"
修改为: suffix "dc=ldap,dc=chenbro,dc=com,dc=dg"
将第70行:rootdn "cn=Manager,dc=my-domain,dc=com"
修改为: rootdn "cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg"
将第76行:rootpw secret
修改为: rootpw 123456
设置完成后如下图所示
以上设置说明:
suffix "dc=ldap,dc=chenbro,dc=com,dc=dg"其中dc=ldap,dc=chenbro,dc=com,dc=dg为目录后缀
rootdn "cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg"设置l目录管理员为root
rootpw 123456设置目录管理员root的明文密码为123456
当然,明文密码是不安全的,我们可以以用slappasswd命令来生成加密密码,提高系统的安全性
[root@mailtest openldap]# slappasswd -h {crypt}
New password:
Re-enter new password:
{CRYPT}DiWqVR0PCWOOo
以上命令说明,运行slappasswd –h {crypt}后,在New password:处输入123456,然后在Re-enter new password:处再次输入123456确认,命令生成123456明文密码的加密密码{CRYPT}DiWqVR0PCWOOo,将其复制后粘贴入slapd.conf配置文件中rootpw后,如下图所示
以上只是完成了ldap目录的设置,ldap目录内不会有任何数据,下面将逐步建立。
三、Open ldap数据的建立
1、基础配置
首先我们在/etc/openldap目录下建立一个root.ldif的文件,内容如下:
[root@mailtest openldap]# cat root.ldif
# extended LDIF
#
# LDAPv3
# base <dc=ldap,dc=chenbro,dc=com,dc=dg> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# ldap.chenbro.com.dg
dn: dc=ldap,dc=chenbro,dc=com,dc=dg
dc: ldap
objectClass: dcObject
objectClass: organizationalUnit
ou: ldap Dot chenbro Dot com Dot dg
以上root.ldif文件中橙色字部分与根尾码相关的单词必须与/etc/openldap/slapd.conf配置档中的设置一致。
然后执行如下命令将root.ldif文件的内容导入openldap系统
[root@mailtest openldap]#slapadd –v –l root.ldif
added: "dc=ldap,dc=chenbro,dc=com,dc=dg" (00000001)
根尾码相关数据导入后,可启openldap测试
[root@mailtest openldap]# service ldap start
/var/lib/ldap/objectClass.bdb is not owned by "ldap" [警告]
/var/lib/ldap/ou.bdb is not owned by "ldap" [警告]
/var/lib/ldap/id2entry.bdb is not owned by "ldap" [警告]
/var/lib/ldap/dn2id.bdb is not owned by "ldap" [警告]
為 slapd 檢查設定檔: [ 確定 ]
啟動 slapd: [ 確定 ]
以上警告信息的意思为:
/var/lib/ldap/objectClass.bdb
/var/lib/ldap/ou.bdb
/var/lib/ldap/id2entry.bdb
/var/lib/ldap/dn2id.bdb
四个数据库文件的所属群组与人员不是ldap可通过以下命令修改
[root@mailtest openldap]# chown ldap:ldap /var/lib/ldap/*
再次重启ldap,检查其正确性
[root@mailtest openldap]# service ldap start
為 slapd 檢查設定檔: [ 確定 ]
啟動 slapd: [ 確定 ]
没有提示任何错误信息,测试通过。
2、phpldapadmin设置与数据输入
1)服务器端设置
命令行方式的ldap数据输入与维护比较繁琐,中间还涉及到文字的编码转换等问题,现在有很多图形界面的软件可供我们选择,phpldapadmin工具就是其中的一款,由于笔者本人使用这一软件,故以此软件为例进行讲解。由于phpldapadmin是基本于web界面,所以此服务器需安装apache与php4.x软件包,通常情况下linux系统安装完成后,系统已默认安装了以上两款软件,如果你的系统中没有以上软件,可按以上安装open ldap软件的方法进行安装。以下我们选用phpldapadmin-0.9.8.3.tar.gz这个版本为例进行配置示范。
首先解压缩
[root@mailtest openldap]# tar -zxvf phpldapadmin-0.9.8.3.tar.gz
[root@mailtest openldap]# mv phpldapadmin-0.9.8.3 phpldapadmin
[root@mailtest openldap]# cp –r phpldapadmin /var/www/html
[root@mailtest openldap]# cd /var/www/html/
[root@mailtest html]# cd phpldapadmin
[root@mailtest phpldapadmin]# cd config/
[root@mailtest config]# cp config.php.example config.php
[root@mailtest config]# vi config.php
将第67行
$ldapservers->SetValue($i,'server','name','My LDAP Server');
注释掉,更改为
// $ldapservers->SetValue($i,'server','name','My LDAP Server');
将230行的注释符号“/*”删除,在237行后新增一空行,将注释符号“/*”移至第238行,并修改235与237行内容如下图所示
以上修改完成后退出打开IE在地址栏中输入
输入后无法进入phpldapadmin界面,则进入系统启动httpd服务。
[root@mailtest config]#service httpd start
[root@mailtest config]#chkconfig httpd on 设置系统以后启动时自动加载apache服务
点击Login后
在Login DN后面输入cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg
在Password后面输入slapd.conf中设置的123456
点击Authenticate进入
点击Create new entry here建立组织与人员名单
建立组织点击Organisational Unit
建立人员点击Address Book Entry (mozillaOrgPerson)
后面的操作一目了然。
2)用户端Outlook express设置
点击工具à帐户à新增à目录服务à输入ldap服务器为192.168.8.4,点击确定后退出,然后再次进入选择目录服务中的192.168.8.4进入相关设置,设置如下:
四、Open ldap数据备份
为预防ldap通讯录服务器数据库发生错误可使用如下命令对数库进行备份,备份档为filename.txt
[root@mailtest openldap]# ldapsearch -x -b "dc=ldap,dc=chenbro,dc=com,dc=dg" >filename.txt
[root@mailtest openldap]#cat filename.txt
# extended LDIF
#
# LDAPv3
# base
# filter: (objectclass=*)
# requesting: ALL
#
# ldap.chenbro.com.dg
dn: dc=ldap,dc=chenbro,dc=com,dc=dg
dc: ldap
objectClass: dcObject
objectClass: organizationalUnit
ou: ldap Dot chenbro Dot com Dot dg
# \E8\94\A1\E6\9F\90\E6\9F\90, ldap.chenbro.com.dg
dn:: Y2496JSh5p+Q5p+QLGRjPWxkYXAsZGM9Y2hlbmJybyxkYz1jb20sZGM9ZGc=
sn:: 6JSh5p+Q5p+Q
cn:: 6JSh5p+Q5p+Q
mail: c0242@chenbro.com.dg
telephoneNumber: 882
homePhone: 51289788
facsimileTelephoneNumber: 51289766
mobile: 13951136877
objectClass: inetOrgPerson
objectClass: top
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
因以上命令为ldap数库查询命令,故执行后会导出数库中dc=ldap,dc=chenbro,dc-=com,dc=dg的所有数据,以下几行橙色字部份请从filename.txt中手工删除.
也可使用如下指令自动删除
[root@mailtest openldap]#seq -e 10 1 |sed -n '1{N;N;N;N;N;N;};:a;N;P;D;t a' filename.txt
说明:第一个N代表倒数2行,第二个N代表倒数第三行,依此类推到倒数七行,故需放置6个N以上操作结束后,代表数据库已经备份成功
五、Open ldap数据恢复
首先删除/var/lib/ldap/目录下的所以数库文件然后执行下面的指令
[root@mailtest openldap]# rm -rf /var/lib/ldap/*
将备份的数据导入
[root@mailtest openldap]#slapadd -v -l /etc/openldap/filename.txt
指令下达后,将会很快的显示数据库中的所有内容
执行下面的指令,否则当我们重启ldap时会出现用户与群组错误
[root@mailtest openldap]#chown -R ldap:ldap /var/lib/ldap
重启ldap服务,恢复完成
[root@mailtest openldap]#service ldap restart