使用 OpenLDAP 集中管理用户帐号(2)

2019-01-03 15:51

dn: cn=ldapuser,ou=Group,dc=ibm,dc=com objectClass: posixGroup objectClass: top cn: ldapuser userPassword: {crypt}x gidNumber: 500 # ldapadd -x -D \

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

清单 8. 迁移 ldapuser 信息

# grep ldapuser /etc/passwd > passwd.in

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

# cat passwd.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 \

现在检查已经添加到数据库中的信息。清单 9 给出了全部输出结果:

清单 9. 以 LDIF 格式填充的 OpenLDAP 数据库 # ldapsearch -x # extended LDIF #

# LDAPv3

# base <> with scope sub # filter: (objectclass=*) # requesting: ALL #

# ibm.com

dn: dc=ibm,dc=com dc: ibm

objectClass: top objectClass: domain

# People, ibm.com

dn: ou=People,dc=ibm,dc=com ou: People objectClass: top

objectClass: organizationalUnit

# Group, ibm.com

dn: ou=Group,dc=ibm,dc=com ou: Group

objectClass: top

objectClass: organizationalUnit

# ldapuser, Group, ibm.com

dn: cn=ldapuser,ou=Group,dc=ibm,dc=com objectClass: posixGroup objectClass: top cn: ldapuser gidNumber: 500

# ldapuser, People, ibm.com

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 # search result search: 2 result: 0 Success # numResponses: 6 # numEntries: 5

配置 LDAP 客户机

用来设置客户机的 Red Hat Enterprise Linux release 4 Update 1 包包括:

?

nss_ldap-226-6:包括两个 LDAP 访问客户机:nss_ldap 和 pam_ldap

o nss_ldap 是一组 C 库扩展,它允许 LDAP 目录服务器用作一个用户和组

信息的主源

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

LDAP 身份验证要想正确地工作,需要配置两个服务:系统命名服务和身份验证服务。 系统命名服务(NSS)需要配置为使用 LDAP 来解析诸如用户和组帐号之类的资源。例如,在运行命令 ls -l 时,如果某个文件 inode 给出文件的所有者是 “user 501”,那么命名服务就需要将 “uid 501” 解析成用户名,并在 ls 命令输出结果中输出。通常来说,这是通过查找 /etc/passwd 文件中的所有用户帐号实现的。由于用户现在都存储在 LDAP 目录中,因此系统需要配置成同时对 passwd 文件和 LDAP 目录中的帐号进行解析。这种功能是通过 /usr/lib/libnss_ldap.so 库提供的。

身份验证服务是实际向 LDAP 验证用户身份的服务。可插入身份验证模块(PAM)提供了本地 Linux 身份验证服务。下面我们将配置 PAM 先对本地的 /etc/passwd 文件检查用户帐号,然后再对 LDAP 服务器进行检查。PAM LDAP 模块可以用来将身份验证重定向到 LDAP 目录上。/lib/security/pam_ldap.so PAM 模块提供了 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,最初我们希望关闭加密功能: host dhcp64-233.ibm.com

base dc=ibm,dc=com ssl off

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

group: files ldap

要让 PAM 身份验证服务使用 OpenLDAP 服务器,请将 pam_ldap 行加入到 /etc/pam.d/system-auth 中,位置在对应的标准 pam_unix.so 条目之后。尽管其他设置也可以实现相同的结果,但是我使用下面的文件设置: auth required /lib/security/$ISA/pam_env.so

auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so broken_shadow account sufficient /lib/security/$ISA/pam_localuser.so

account sufficient /lib/security/$ISA/pam_succeed_if.so uid %lt; 100 quiet

account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so account required /lib/security/$ISA/pam_permit.so

password requisite /lib/security/$ISA/pam_cracklib.so retry=3

password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow password sufficient /lib/security/$ISA/pam_ldap.so use_authtok password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so

session required /lib/security/$ISA/pam_unix.so session optional /lib/security/$ISA/pam_ldap.so

现在,用户帐号信息可以从客户机系统中删除并从 LDAP 目录中进行获取了。当用户试图登录客户机系统时,PAM 身份验证服务就会从用户那里获取用户名,在我们的例子中是 ldapuser。PAM 会从 LDAP 服务器中检索识别名(DN)条目 .dn: uid=ldapuser, ou=People, dc=ibm, dc=com.。PAM 然后会从用户那里获取密码。然后 PAM 试图使用这个 DN 和密码与 LDAP 服务器进行绑定。DN 和密码都以正文文本的格式发送给 LDAP 服务器。在


使用 OpenLDAP 集中管理用户帐号(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国水晶装饰品行业市场专项调查与投资前景预测分析报告2016-202

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: