ldap安装配置.docx

上传人:b****6 文档编号:7946538 上传时间:2023-01-27 格式:DOCX 页数:23 大小:264.52KB
下载 相关 举报
ldap安装配置.docx_第1页
第1页 / 共23页
ldap安装配置.docx_第2页
第2页 / 共23页
ldap安装配置.docx_第3页
第3页 / 共23页
ldap安装配置.docx_第4页
第4页 / 共23页
ldap安装配置.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

ldap安装配置.docx

《ldap安装配置.docx》由会员分享,可在线阅读,更多相关《ldap安装配置.docx(23页珍藏版)》请在冰豆网上搜索。

ldap安装配置.docx

ldap安装配置

简介

Linux发行版中提供的OpenLDAP软件按照一个客户机/服务器模型实现了轻量级目录访问协议(LDAP)。

LDAP的设计目的是提供一种有效的方法来查找和管理信息。

OpenLDAP软件和包提供了创建目录信息树(一个主要进行读操作的数据库)的工具。

本文向您展示如何存储用户的帐号信息,并修改身份验证服务来使用LDAP获取所需要的信息。

内部细节并不重要,因为这些工具可以将数据库的内容以文本格式(LDAP数据交换格式,LDIF)呈现在您的面前。

LDAP信息被组织成属性和值的组合,称为条目(entry)。

条目可能会具有必须的属性或可选属性。

一个条目的属性必须要遵循/etc/openldap/schema/模式文件中定义的规则。

规则包含在条目的objectclass属性中。

看一下下面的关系,我们可以看出posixAccountobjectclass中包含了密码文件条目的信息(posixAccountuserPassword是文件条目的base64编码)。

图1.LDAP目录条目和Linux密码文件之间的关系

文件/etc/openldap/schema/nis.schema为posixAccount对象类中的条目定义了所有的属性和objectclass。

例如,下面是对uidNumber属性的描述:

attributetype(1.3.6.1.1.1.1.0NAME'uidNumber'

DESC'Anintegeruniquelyidentifyingauserinanadministrativedomain'

EQUALITYintegerMatch

SYNTAX1.3.6.1.4.1.1466.115.121.1.27SINGLE-VALUE)

所有的属性类型都已经定义了,它们被收集到posixAccountobjectclass中。

例如:

objectclass(1.3.6.1.1.1.2.0NAME'posixAccount'SUPtopAUXILIARY

DESC'AbstractionofanaccountwithPOSIXattributes'

MUST(cn$uid$uidNumber$gidNumber$homeDirectory)

MAY(userPassword$loginShell$gecos$description))

ldapuser条目具有一个识别名属性dn,它用作用户名,并与userPassword一起用来在LDAP目录中记录信息,或与LDAP目录绑定在一起使用。

LDAP为作为容器使用的特殊条目提供了将这些条目组织成树结构的功能。

在这个例子中,我们将使用一个容器People保存用户帐号信息,使用另外一个容器Groups保存组帐号信息。

所生成的目录信息树如图2所示。

图2.用户帐号信息使用的目录信息树

让我们来看一下如何配置OpenLDAP服务器,如何将信息从系统文件迁移到LDAP目录中,如何配置OpenLDAP客户机通过LDAP对用户进行身份验证。

在使用一个集中的身份验证数据库时,应该通过使用复制技术采用第二个LDAP服务器提供高可用性,这样在主服务器出现问题时,就可以使用第二个LDAP服务器响应客户机的请求。

由于诸如密码之类的身份验证数据会通过网络进行传输,因此希望使用TSL协议建立加密通信连接。

我们的OpenLDAP服务器和客户机都是虚拟机,上面运行的是RedHatEnterpriseLinuxASrelease4(NahantUpdate1)。

在我们的例子中使用了表1所列出的系统。

如果想模仿这些例子,请使用适合您自己的设置。

表1.系统网络信息

角色

主机名

IP地址

OpenLDAP主服务器

dhcp64-

9.47.64.233

OpenLDAP从服务器

dhcp64-

9.47.64.253

OpenLDAP客户机

dhcp64-

9.47.64.251

 

配置LDAP服务器

我们使用RedHatEnterpriseLinuxrelease4Update1上的包来构建服务器:

∙openldap-2.2.13-2:

包含OpenLDAP配置文件、库和文档

∙openldap-servers-2.2.13-2:

包含slapd和slurpd服务器、迁移脚本和相关文件

∙openldap-clients-2.2.13-2:

包含客户机程序,用来访问和修改OpenLDAP目录

OpenLDAP包在服务器上安装了很多程序:

∙守护进程:

oslapd:

主LDAP服务器

oslurpd:

负责与复制LDAP服务器保持同步的服务器

∙对网络上的目录进行操作的客户机程序。

下面这两个程序是一对儿:

oldapadd:

打开一个到LDAP服务器的连接,绑定、修改或增加条目

oldapsearch:

打开一个到LDAP服务器的连接,绑定并使用指定的参数进行搜索

∙对本地系统上的数据库进行操作的几个程序:

oslapadd:

将以LDAP目录交换格式(LDIF)指定的条目添加到LDAP数据库中

oslapcat:

打开LDAP数据库,并将对应的条目输出为LDIF格式

OpenLDAP的主要服务器配置文件是/etc/openldap/slapd.conf。

本例所使用的完整slapd.conf文件如清单18所示。

slapd.conf文件中包括一系列全局配置选项,它们作为一个整体应用到slapd上面,后面是包含数据库特有信息的数据库后端定义。

如果一行内容是以空格开始的,就认为它是上一行的延续。

空行和以“#”字符开头的注释行都会被忽略。

如果您正把本文当作练习来做,那就可以按照下面指定的方式进行修改,从而启动LDAP服务器。

一旦确认服务器正常工作之后,就可以添加复制功能,然后再添加安全性支持。

首先是全局配置信息段的设置。

其中每个选项的值都是我们想要的。

正如上面介绍的一样,信息被组织成属性和值的组合,称为条目。

条目属性必须遵循的规则是使用objectclass专用属性进行组织的,这可以在/etc/openldap/schema/模式文件中找到。

对于身份验证来说,需要使用在nis.schema中定义的posixAccount和shadowAccountobjectclasses:

include/etc/openldap/schema/nis.schema

loglevel行设置的是日志选项。

可以将其设置为这样的级别:

调试语句和操作统计信息都会被记录到/var/log/slapd.log中。

日志级别是累加的:

296=256日志连接/操作/结果+32搜索过滤器处理+8连接管理:

loglevel296

日志信息会被记录到syslogdLOG_LOCAL4机制中。

还需要将下面的内容添加到/etc/syslog.conf中,并让syslogd重新读取自己的配置文件:

local4.debug/var/log/slapd.log

access行定义了谁可以访问目录中的内容。

我们希望用户可以修改自己的密码,并更新自己的shadow信息来反映密码的变化。

希望身份验证程序能够检索用户的密码。

还希望用户能够读取所有其他条目。

注意密码条目是不可读的,shadow属性的惟一用处就是管理密码的过期问题。

accesstoattrs=shadowLastChange,userPassword

byselfwrite

by*auth

accessto*

by*read

接下来,在database部分,要定义下面的内容。

使用新的bdb后端数据库:

databasebdb

指定后端数据库需要响应的查询的DN前缀。

为了确保惟一性,根前缀应该从自己的网络域名构建出来。

在本例的情况中,它是.dc=svc,dc=beaverton,dc=ibm,dc=com.,但是在下面的例子中我们对其进行了简化:

suffix"dc=ibm,dc=com"

指定管理DN,它不用于访问控制或限制数据库的操作。

也不需要在目录中为这个DN指定一个条目。

为具有rootpw密码的管理员使用DN可以跳过ACL规则中的所有访问控制:

rootdn"cn=Manager,dc=ibm,dc=com"

rootpw{MD5}ijFYNcSNctBYg

这就是我们现在想要设置的选项。

稍后将返回slapd.conf文件来配置复制,然后在配置安全性。

现在,我们希望将数据添加到目录中,并确认可以访问这些信息。

要实现这种功能,需要配置服务器来使用ldap客户机工具,例如ldapadd和ldapsearch。

ldap客户机工具的配置文件是/etc/openldap/ldap.conf。

我们使用的这个文件的完整列表如本文末尾的清单19所示。

要在ldap服务器上运行这些工具,只需要将该行修改成下面的内容:

BASEdc=ibm,dc=com

设置启动脚本在级别2、3和5时启动LDAP:

清单1.设置启动运行级别

#chkconfig--levels235ldapon

从命令行中启动服务:

清单2.启动服务

#serviceldapstart

Startingslapd:

[OK]

OpenLDAP守护进程slapd应该已经运行了:

清单3.检查服务正在运行

#ps-ef|grepslap

ldap1352110Oct24?

00:

00:

00/usr/sbin/slapd-uldap-hldap:

///ldaps:

///

ldapsearch-x命令应该可以成功完成,但不会返回任何数据。

回页首

迁移密码和shadow信息

RedHat所提供的openldap-servers包包含PADLSoftwarePtyLtd.公司的MigrationTools工具。

我们将使用这些工具将数据从Linux系统文件(例如/etc/group和/etc/password)转换成LDAPLDIF格式,这是数据库信息的一种文本格式的表示。

这种格式是行界定、冒号分隔的属性-值对。

有一组Perl脚本被安装到/usr/share/openldap/migration/中执行迁移。

这些Perl脚本的配置信息包含在migrate_common.ph文件的开头。

对于我们的目的来说,只需要修改命名前缀的变量来使用条目的识别名就足够了,如下所示:

$DEFAULT_BASE="dc=ibm,dc=com"

在进行这些修改之后,请运行脚本migrate_base.pl,它会创建根项,并为Hosts、Networks、Group和People等创建低一级的组织单元:

清单4.运行migrate_base.pl

#migrate_base.pl>base.ldif

编辑base.ldif,删除除下面之外的所有条目:

清单5.base.ldif条目

#catbase.ldif

dn:

dc=ibm,dc=com

dc:

ibm

objectClass:

top

objectClass:

domain

dn:

ou=People,dc=ibm,dc=com

ou:

People

objectClass:

top

objectClass:

organizationalUnit

dn:

ou=Group,dc=ibm,dc=com

ou:

Group

objectClass:

top

objectClass:

organizationalUnit

在LDAP服务器上,使用OpenLDAP客户机工具ldapadd将以下条目插入到数据库中。

简单身份验证必须要使用-x选项指定。

在slapd.conf中定义的rootdn身份验证识别名是“cn=Manager,dc=ibm,dc=com”。

对于简单身份验证来说,必须使用密码。

选项-W强制提示输入密码。

这个密码就是在slapd.conf文件中指定的rootpw参数的值。

包含这些条目的LDIF文件是使用-f选项指定的:

清单6.使用ldapadd插入条目

#ldapadd-x-D"cn=Manager,dc=ibm,dc=com"-W-fbase.ldif

接下来,从/etc/group中迁移ldapuser组:

清单7.迁移ldapuser组

#grepldapuser/etc/group>group.in

#./migrate_group.plgroup.in>group.ldif

#catgroup.ldif

dn:

cn=ldapuser,ou=Group,dc=ibm,dc=com

objectClass:

posixGroup

objectClass:

top

cn:

ldapuser

userPassword:

{crypt}x

gidNumber:

500

#ldapadd-x-D"cn=Manager,dc=ibm,dc=com"-W-fgroup.ldif

最后,从/etc/passwd和/etc/shadow中迁移ldapuser的信息:

清单8.迁移ldapuser信息

#grepldapuser/etc/passwd>passwd.in

#./migrate_passwd.plpasswd.in>passwd.ldif

#catpasswd.ldif

dn:

uid=ldapuser,ou=People,dc=ibm,dc=com

uid:

ldapuser

cn:

ldapuser

objectClass:

account

objectClass:

posixAccount

objectClass:

top

objectClass:

shadowAccount

userPassword:

{crypt$1$TeOlOcMc$cpQaa0WpLSFRC1HIHW5bt1

shadowLastChange:

13048

shadowMax:

99999

shadowWarning:

7

loginShell:

/bin/bash

uidNumber:

500

gidNumber:

500

homeDirectory:

/home/ldapuser

gecos:

ldapuser

#ldapadd-x-D"cn=Manager,dc=ibm,dc=com"-W-fpasswd.ldif

现在检查已经添加到数据库中的信息。

清单9给出了全部输出结果:

清单9.以LDIF格式填充的OpenLDAP数据库

#ldapsearch-x

#extendedLDIF

#

#LDAPv3

#base<>withscopesub

#filter:

(objectclass=*)

#requesting:

ALL

#

#

dn:

dc=ibm,dc=com

dc:

ibm

objectClass:

top

objectClass:

domain

#People,

dn:

ou=People,dc=ibm,dc=com

ou:

People

objectClass:

top

objectClass:

organizationalUnit

#Group,

dn:

ou=Group,dc=ibm,dc=com

ou:

Group

objectClass:

top

objectClass:

organizationalUnit

#ldapuser,Group,

dn:

cn=ldapuser,ou=Group,dc=ibm,dc=com

objectClass:

posixGroup

objectClass:

top

cn:

ldapuser

gidNumber:

500

#ldapuser,People,

dn:

uid=ldapuser,ou=People,dc=ibm,dc=com

uid:

ldapuser

cn:

ldapuser

objectClass:

account

objectClass:

posixAccount

objectClass:

top

objectClass:

shadowAccount

shadowMax:

99999

shadowWarning:

7

loginShell:

/bin/bash

uidNumber:

500

gidNumber:

500

homeDirectory:

/home/ldapuser

gecos:

test2

#searchresult

search:

2

result:

0Success

#numResponses:

6

#numEntries:

5

回页首

配置LDAP客户机

用来设置客户机的RedHatEnterpriseLinuxrelease4Update1包包括:

∙nss_ldap-226-6:

包括两个LDAP访问客户机:

nss_ldap和pam_ldap

onss_ldap是一组C库扩展,它允许LDAP目录服务器用作一个用户和组信息的主源

opam_ldap是一个Linux-PAM模块,它支持身份验证功能

LDAP身份验证要想正确地工作,需要配置两个服务:

系统命名服务和身份验证服务。

系统命名服务(NSS)需要配置为使用LDAP来解析诸如用户和组帐号之类的资源。

例如,在运行命令ls-l时,如果某个文件inode给出文件的所有者是“user501”,那么命名服务就需要将“uid501”解析成用户名,并在ls命令输出结果中输出。

通常来说,这是通过查找/etc/passwd文件中的所有用户帐号实现的。

由于用户现在都存储在LDAP目录中,因此系统需要配置成同时对passwd文件和LDAP目录中的帐号进行解析。

这种功能是通过/usr/lib/libnss_ldap.so库提供的。

身份验证服务是实际向LDAP验证用户身份的服务。

可插入身份验证模块(PAM)提供了本地Linux身份验证服务。

下面我们将配置PAM先对本地的/etc/passwd文件检查用户帐号,然后再对LDAP服务器进行检查。

PAMLDAP模块可以用来将身份验证重定向到LDAP目录上。

/lib/security/pam_ldap.soPAM模块提供了LDAP身份验证功能。

身份验证本身是由PAM程序执行的,它从身份验证候选机制中获取用户名,将其绑定到OpenLDAP服务器上,检索与这个uid条目(用户名条目)相关的DN;从身份验证候选机制中获取密码,然后使用这个DN和密码试图将其绑定到OpenLDAP服务器上。

如果绑定成功,PAM会报告说这个用户已经成功通过了pam_ldap.so提供的身份验证测试。

根据PAM的配置不同,在用户看到命令行提示符之前可能会执行其他测试。

我们可以采用两种方法来配置LDAP客户机。

一种快速而简单的方法是运行/usr/sbin/authconfig,并在两个屏幕中输入信息。

另外一种方法是通过编辑客户机LDAP配置文件/etc/ldap.conf,然后修改/etc/nsswitch.conf、/etc/sysconfig/authconfig和/etc/pam.d/system-auth。

首先让我们来看一下如何运行authconfig。

如图3所示进行选择,然后点击Next。

图3.执行authconfig命令的第一个页面

在如图4所示的第二个屏幕中输入对应的信息,然后点击OK。

图4.执行authconfig命令的第二个页面

要手工配置OpenLDAP客户机,请遵循下面的步骤。

用来跟踪特定身份验证机制是否已经启用的文件是/etc/sysconfig/。

我们可以希望以下条目的值都是“yes”:

USELDAP=yes

USELDAPAUTH=yes

USEMD5=yes

USESHADOW=yes

USELOCAUTHORIZE=yes

PAM和NSS模块使用的基本配置文件是/etc/ldap.conf。

host选项指定LDAP服务器,base选项指定这个目录使用的DN,最初我们希望关闭加密功能:

hostdhcp64-

basedc=ibm,dc=com

ssloff

要让NSS服务使用OpenLDAP服务器,需要将“ldap”添加到/etc/nsswitch.conf文件的passwd、shadow和group行中,如下所示:

passwd:

filesldap

shadow:

filesldap

group:

filesldap

要让PAM身份验证服务使用OpenLDAP服务器,请将pam_ldap行加入到/etc/pam.d/system-auth中,位置在对应的标准pam_unix.so条目之后。

尽管其他设置也可以实现相同的结果,但是我使用下面的文件设置:

authrequired/lib/security/$ISA/pam_env.so

authsufficient/lib/security/$ISA/pam_unix.solikeauthnullok

authsufficient/lib/security/$ISA/pam_ldap.souse_first_pass

authrequired/lib/security/$ISA/pam_deny.so

accountrequired/lib/security/$ISA/pam_unix.sobroken_shadow

accountsufficient/lib/security/$ISA/pam_localuser.so

accountsufficient/lib/security/$ISA/pam_succeed_if.souid%lt;100quiet

account[default=badsuccess=okuser_unknown=ignore]/lib/s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1