Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239984
  • 博文数量: 59
  • 博客积分: 2661
  • 博客等级: 少校
  • 技术积分: 732
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-24 11:54
文章分类

全部博文(59)

文章存档

2013年(1)

2012年(8)

2011年(17)

2010年(33)

我的朋友

分类:

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 --import /usr/share/doc/fedora-release-3/RPM-GDG-KEY*

使用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

设置完成后如下图所示

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

以上设置说明:

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后,如下图所示

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

以上只是完成了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');

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

将230行的注释符号“/*”删除,在237行后新增一空行,将注释符号“/*”移至第238行,并修改235与237行内容如下图所示

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

以上修改完成后退出打开IE在地址栏中输入

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

输入后无法进入phpldapadmin界面,则进入系统启动httpd服务。

[root@mailtest config]#service httpd start

[root@mailtest config]#chkconfig httpd on 设置系统以后启动时自动加载apache服务

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

点击Login后

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

在Login DN后面输入cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg

在Password后面输入slapd.conf中设置的123456

点击Authenticate进入

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

点击Create new entry here建立组织与人员名单

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客

 

建立组织点击Organisational Unit

建立人员点击Address Book Entry (mozillaOrgPerson)

后面的操作一目了然。

2)用户端Outlook express设置

点击工具à帐户à新增à目录服务à输入ldap服务器为192.168.8.4,点击确定后退出,然后再次进入选择目录服务中的192.168.8.4进入相关设置,设置如下:

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客 

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客 

基于Open ldap目录服务的通讯录服务器的架设、备份、恢复 - 青新 - 青新的博客 

 

四、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 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

阅读(1858) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~