基于Open ldap目录服务的通讯录服务器的架设、备份、恢复2007-07-23 11:42:00| 分类: Linux学习 | 标签: |字号大中小 订阅 博主原创,欢迎转载,转载请注明出处! 在企业内部网络环境应用中,使用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在地址栏中输入http://192.168.8.4/phpldapadmin/
输入后无法进入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 <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
# \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 |
|