linux ldap目录服务器配置手册

LDAP服务的配置与应用
本节关键字:linux ldap配置,LDAP服务的配置与应用,如何配置ldap,如何配置ldap服务器
一.目录服务概述
(一).X.500简介
X.500由ITU-T和ISO定义,它实际上不是一个协议,它是由一个协议族组成的,包括了从X.501到X.525等一系列非常完整的目录服务。
X.500主要具备以下特征。
 分散维护:运行X.500的每个站点只负责其本地目录部分,所以可以立即进行更新和维护操作。
 强大的搜索性能:X.500具有强大的搜索功能,支持用户建立的任意复杂查询。
 单一全局命名空间:类似于DNS,X.500为用户提供单一同性命名空间(Single Homogeneous Namespace)。与DNS相比,X.500的命名空间更灵活且易于扩展。
 结构化信息结构:X.500目录中定义了信息结构,允许本地扩展。
 基于标准的目录服务:由于X.500可以被用于建立一个基于标准的目录,因此在某种意义上,请求应用目录信息(电子邮件、资源自动分配器、特定目录工具)的应用程序就能访问重要且有价值的信息。
(二).LDAP简介
LDAP是X.500标准中的目录访问协议DAP的一个子集,可用于建立X.500目录。因此这两个目录服务技术标准有着许多的共同之处,即在平台上,都实现了一个通用的平台结构,提供了一个操作系统和应用程序需要的信息服务类型,可以被许多平台和应用程序接收和实现;在信息模型上,都使用了项、对象类、属性等概念和模式来描述信息;在命名空间方面,都使用了目录信息树结构和层次命名模型;在功能模型上,都使用了相似的操作命令来管理目录信息;在认证框架方面,都可以实现用户名称和密码,或者基于安全加密方式的认证机制;在灵活性上,它们的目录规模都可大可小,大到全球目录树,小到只有一台目录服务器;在分布性方面,目录信息都可以分布在多个目录服务器中,这些服务器可以由各组织管理,既保证了目录信息总体结构的一致性,又满足了分级管理的需要。
LDAP具有下列特点:
 LDAP是一个跨平台的、标准的协议,得到了业界广泛的认可;
 LDAP服务器可以使用基于“推”或“拉”的技术,用简单的或基于安全证书的安全认证,复制部分或全部数据,既保证了数据的安全性,又提高了数据的访问效率;
 LDAP是一个安全的协议,LDAP v3支持SASL(Simple Authentication and Security Layer)、SSL(Secure Socket Layer)和TLS(Transport Layer Security),使用认证来确保事务的安全,另外,LDAP提供了不同层次的访问控制,以限制不同用户的访问权限;
 支持异类数据存储,LDAP存储的数据可以是文本资料、二进制图片等;
 大多数的LDAP服务器安装简单,也容易维护和优化。
(三).LDAP与X.500的比较
 LDAP基于Internet协议,X.500基于OSI(开放式系统互联)协议,建立在应用层上的X.500目录访问协议DAP,需要在OSI会话层和表示层上进行许多的建立连接和包处理的任务,需要特殊的网络软件实现对网络的访问;LDAP则直接运行在更简单和更通用的TCP/IP或其他可靠的传输协议层上,避免了在OSI会话和表示层的开销,使连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想。
 LDAP协议更为简单,LDAP继承了X.500最好的特性,同时去掉了它的复杂性。LDAP通过使用查找操作实现列表操作和读操作,另一方面省去了X.500中深奥的和很少使用的服务控制和安全特性,只保留常用的特性,简化了LDAP的实现。
 LDAP通过引用机制实现分布式访问,X.500 DSA通过服务器之间的链操作实现分布式的访问,这样查询的压力集中于服务器端;而LDAP通过客户端API实现分布式操作(对于应用透明)平衡了负载。
 LDAP实现具有低费用、易配置和易管理的特点。经过性能测试,LDAP比X.500具有更少的响应时间;LDAP提供了满足应用程序对目录服务所需求的特性。
(四).流行的目录服务产品
1.NDS(Novell Directory Services)
2.Microsoft Active Directory(活动目录)
3.OpenLDAP
二.LDAP基础
(一).LDAP的4种基本模型
1.信息模型
2.命名模型
3.功能模型
在LDAP中共有4类操作(共10种):
(1)查询类操作,如搜索、比较;
(2)更新类操作,如添加条目、删除条目、修改条目和修改条目名;
(3)认证类操作,如绑定、解绑定;
(4)其他操作,如放弃和扩展操作。
4.安全模型
(1)无认证
(2)基本认证
(3)SASL认证
(二).LDAP存储结构
一棵目录信息树由若干条目(Entry)组成,每个条目有惟一的标识名DN(Distinguished Name),条目可以描述用户账号、打印机和计算机等对象。
一个条目是一个对象,每个条目由多个“属性(Attribute)”组成,每个属性由一个类型和一个到多个值组成 ,每个属性可以对应一个或多个“值(Value)”,如联系电话属性可以包含有多个值 。
(三).LDAP的基本概念
LDAP目录服务器是通过目录数据库来存储网络信息以提供目录服务的。为了方便用户迅速查找和定位信息,目录数据库是以目录信息树(Directory nformation Tree,缩写为DIT)为存储方式的树型存储结构,目录信息树及其相关概念构成了LDAP协议的信息模型 。
(四).规划目录树
要实现LDAP,第一步就是规划目录树,规划一个灵活且易于扩展的目录树非常重要,它可以减少后期维护目录树的工作量。
(五).LDAP服务的应用领域
LDAP的应用主要涉及以下几种类型。
 信息安全类:数字证书管理、授权管理、单点登录。
 科学计算类:DCE(Distributed Computing Environment,分布式计算环境)、UDDI(Universal Description,Discovery and Integration,统一描述、发现和集成协议)。
 网络资源管理类:MAIL系统、DNS系统、网络用户管理、电话号码簿。
 电子政务资源管理类:内网组织信息服务、电子政务目录体系、人口基础库、法人基础库。
三.LDAP服务的安装
(一).Berkeley DB数据库的安装
1.下载BDB
2.安装BDB
(1)编译安装BDB
BDB的安装方法比较简单,使用以下命令编译安装。
tar zxvf db-4.6.18.tar.gz
cd db-4.6.18/build_unix
../dist/configure
make
make install
(2)配置系统动态链接库的路径
① 编辑系统动态链接库的配置文件/etc/ld.so.conf,在文件的末尾加入如下语句。
/usr/local/BerkeleyDB.4.6/lib
②使用以下命令刷新系统动态链接库缓存,如图13-11所示。
/sbin/ldconfig
(二).OpenLDAP的安装
1.下载OpenLDAP
2.安装OpenLDAP
OpenLDAP的安装方法比较简单,可使用以下命令编译安装。
tar zxvf openldap-stable-20070110.tgz
cd openldap-2.3.32
env CPPFLAGS=”-I/usr/local/BerkeleyDB.4.6/include” LDFLAGS=”-L/usr/local/BerkeleyDB.4.6/lib” ./configure –prefix=/usr/local/openldap –enable-bdb
make depend
make
make test
make install
四.初始化OpenLDAP
(一).OpenLDAP的基本配置
1.设置LDAP使用的Schema
Schema(模式)定义了LDAP中的对象类型、属性、语法和匹配规则等,如用户的电子邮件、联系地址和联系电话等属性,它类似于关系数据库中的表结构。
找到语句:
include /usr/local/openldap/etc/openldap/schema/core.schema
在该语句的后面添加以下语句。
include /usr/local/openldap/etc/openldap/schema/corba.schema
include /usr/local/openldap/etc/openldap/schema/cosine.schema
include /usr/local/openldap/etc/openldap/schema/dyngroup.schema
include /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include /usr/local/openldap/etc/openldap/schema/java.schema
include /usr/local/openldap/etc/openldap/schema/misc.schema
include /usr/local/openldap/etc/openldap/schema/nis.schema
include /usr/local/openldap/etc/openldap/schema/openldap.schema
2.设置目录树的后缀
找到语句:
suffix “dc=my-domain,dc=com”
将其改为:
suffix “dc=example,dc=com”
3.该语句设置LDAP管理员的DN
找到语句:
rootdn “cn=Manager,dc=my-domain,dc=com”
将其改为:
rootdn “cn=Manager,dc=example,dc=com”
4.设置LDAP管理员的口令
找到语句:
rootpw secret
将其改为:
rootpw {SSHA}NXV9Fl28qCHMmA6P sjhVX0uejTKE6OYr
(二).启动OpenLDAP服务器
启动OpenLDAP服务器,应执行以下命令:
/usr/local/openldap/libexec/slapd
为了确保slapd进程已经启动,应执行以下命令:
pstree|grep “slapd”
如果出现“|-slapd”,则表示slapd进程已经成功启动
(三).建立初始化数据
① 建立LDIF文件。使用vi等文本编辑工具建立名为example.ldif的文件,内容如下:
dn:dc=example,dc=com
objectclass:dcObject
objectclass:organization
o:Example, Inc.
dc:example
dn:cn=Manager,dc=example,dc=com
objectclass:organizationalRole
cn:Manager
② 执行以下命令导入数据。
/usr/local/openldap/bin/ldapadd -x -W -D “cn=Manager,dc=example,dc=com” -f example.ldif
命令执行输入LDAP管理员的口令
五.phpLDAPadmin的安装
(一).安装Apache服务
由于基于Web界面的LDAP客户端软件phpLDAPadmin使用PHP编写而成,因此在使用前应安装Apache服务器并建立好PHP的运行环境。由于phpLDAPadmin支持中文管理界面,因此还要将Apache的默认字符集设置为中文(Apache服务具体的安装和配置方法参见本书第7章Web服务的配置与应用)。
(二).下载phpLDAPadmin
使用Web浏览器访问http://prdownloads.sourceforge.net/phpldapadmin/处下载 phpLDAPadmin最新的稳定版 。
(三).安装phpLDAPadmin
安装phpLDAPadmin的具体步骤如下。
① 使用下面的命令解压安装包。
tar zxvf phpldapadmin-0.9.8.4.tar.gz
② 使用下面的命令进入解压目录。
cp -a phpldapadmin-0.9.8.4 /usr/local/phpldapadmin
(四).配置Apache服务
1.加入用户认证功能
2.建立虚拟目录
在Apache的主配置文件httpd.conf中加入以下语句建立虚拟目录。
Alias /phpldapadmin “/usr/local/phpldapadmin”

AuthType Basic
AuthName “Please Login to phpldapadmin”
AuthUserFile /etc/httpd/php_ldap_admin_pwd
Require user admin

六.配置phpLDAPadmin
(一).生成phpLDAPadmin主配置文件
phpLDAPadmin的主配置文件是/usr/local/phpldapadmin/config/config.php.example,phpLDAPadmin提供了一个默认的例子文件config.php.example,使用以下的命令可生成phpLDAPadmin主配置文件。
cp /usr/local/phpldapadmin/config/config.php.example /usr/local/phpldapadmin/config/config.php
(二).配置phpLDAPadmin使用中文
① 编辑文件/usr/local/phpldapadmin/config/config.php,修改语句:
// $config->custom->appearance[‘language’] = ‘auto’;
将“//”注释符号去处,并将语句改为:
$config-> custom->appearance[‘language’] = ‘zh_CN’;
② 使用下列的命令转换phpLDAPadmin语言文件的编码。
iconv -f gbk -t utf8 /usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.po/usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.new.po
msgfmt -o /usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.mo /usr/ local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.new.po
(三).配置phpLDAPadmin
(1)设置口令加密字符串
找到语句:
$config->custom->session[‘blowfish’] = ‘ ‘;
将其改为:
$config->custom- >session[‘blowfish’] = ‘welcome’;
(2)设置LDAP服务器的地址
找到语句:
$ldapservers->SetValue($i,’server’,’host’,’127.0.0.1′);将其改为LDAP服务器对应的名称和IP地址。
(3)设置目录树的基准DN
找到语句:
$queries[$q][‘base’] = ‘dc=example,dc=com’;根据实际将其改为目录树的基准DN。
(4)设置LDAP服务器管理员的DN
找到语句:
$ldapservers->SetValue($i,’login’,’dn’,’cn=Manager,dc=example,dc=com’);根据实际将其改为LDAP服务器管理员的DN。
(5)设置LDAP服务器管理员的口令
找到语句:
$ldapservers->SetValue($i,’login’,’pass’,”);
确保其口令为空。
(6)设置用户认证方式
phpLDAPadmin提供了cookie、session和config这3种认证方式找到语句:
$ldapservers->SetValue($i,’server’,’auth_type’,’cookie’);
确保其认证方式为cookie。
七.使用phpLDAPadmin管理目录树
(一).登录phpLDAPadmin
启动Apache服务,然后使用浏览器访问http://Linux服务器的IP或域名/phpldapadmin/,输入用户名为“admin”和口令后即可进入phpLDAPadmin的管理主页面 。
(二).创建OU
(三).创建用户组
(四).创建用户账号
八.LDAP服务的身份验证实例
(一).Linux系统用户验证
1.安装相关软件
(1)安装nss_ldap软件
(2)安装openldap-client软件
2.关闭SELinux
3.设置使用LDAP进行用户认证
(二).FTP用户验证
① 确认已经安装Red Hat Enterprise Linux 4 Update 1第4张安装光盘/RedHat/RPMS目录下的openldap-clients-2.2.13-2.i386.rpm的RPM包。
② 安装好pure-ftpd服务器并确认安装编译pure-ftpd时在./configure脚本命令行上加入“–with-ldap”参数(pure-ftpd具体的安装和配置方法参见本书第8章 FTP服务的配置与应用)。
③ 进入pure-ftpd源文件解压后的目录,编辑配置文件pureftpd-ldap.conf并进行以下操作。
 修改语句“LDAPServer ldap.c9x.org”为“LDAPServer 192.168.16.177”。
 修改语句“LDAPBaseDN cn=Users,dc=c9x,dc=org”为“LDAPBaseDN dc=xyz,dc=com”。
 修改语句“LDAPBindDN cn=Manager,dc=c9x,dc=org”为“LDAPBindDN cn=Manager,dc=example,dc=com”。
 修改语句“LDAPBindPW r00tPaSsw0rD”为“LDAPBindPW helloldap”。
④ 使用以下命令将文件pureftpd-ldap.conf复制到/etc目录中。
cp pureftpd-ldap.conf /etc
⑤ 编辑pure-ftpd的主配置文件/etc/pure-ftpd.conf,找到语句“# LDAPConfigFile /etc/pureftpd-ldap.conf”,将该语句前的“#”号删掉。
⑥ 重新启动pure-ftpd服务后即可使用在LDAP服务器建立的用户登录FTP。
(三).Web用户验证
① 确认已经安装Red Hat Enterprise Linux 4 Update 1第4张安装光盘/RedHat/RPMS目录下的openldap-clients-2.2.13-2.i386.rpm的RPM包。
② 编辑Apache的主配置文件httpd.conf,添加如下语句(本例是对private目录进行用户验证)。
Alias /mysecret “/usr/local/mysecret”

AuthType Basic
AuthName “Please Login:”
AuthLDAPURL “ldap://192.168.16.177/dc=example,dc=com”
require valid-user

③ 重新启动Apache服务 。

发表评论

电子邮件地址不会被公开。 必填项已用*标注