08.LDAP用户认证+TLS通信.doc_第1页
08.LDAP用户认证+TLS通信.doc_第2页
08.LDAP用户认证+TLS通信.doc_第3页
08.LDAP用户认证+TLS通信.doc_第4页
08.LDAP用户认证+TLS通信.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LDAP用户认证 OpenLDAP在用户认证的应用OpenLDAP经常用在用户登录认证方面,通过LDAP的数据复制功能,可让用户使用一个账户登录网络中使用LDAP服务的所有服务器。在主LDAP服务器中设置好用户账户数据,然后通过在网络中的任意客户端都可使用设置的账号进行登录操作。本节将简单介绍将用户认证迁移到LDAP的操作方法。 用户认证用到的ojbectClass在LDAP中用来保存用户认证条目的objectClass主要有以下3个,分别用来保存组、用户、密码等信息到目录的条目中。posixGroup:可设置属性cn、userPassword、gidNumber等。posixAccount:可设置属性cn、gidNumber、uid、uidNumber、homeDirectory、loginShell等。shadowAccount:可设置属性uid、shadowExpire、shadowFlag、shadowInactive、shadowLastChange、shadowMax、shadowMin、shadowWarning、userPassword等。提示:从上面列出的属性的名称可以很容易地与组、用户的相关信息联系起来举例:以下是组织结构rootlocalhost ldap# cat .ldif #组织架构,根据上图写的#需注意的是,每个冒号后面都需要空一格,而每行结束处不能留有空格字符。dn: dc=wyh,dc=comobjectclass: topobjectclass: dcobjectobjectclass: organizationdc: wyho: wyh,Inc.dn: ou=managers, dc=wyh, dc=comou: managersobjectclass: organizationalUnitdn: cn=wyh, ou=managers, dc=wyh, dc=comcn: wyhsn: wuyunhuiobjectclass: persondn: cn=test, ou=managers, dc=wyh, dc=comcn: testsn: Test Userobjectclass: personrootlocalhost ldap#ldap服务端用户迁移要使用LDAP进行用户认证,首先应该考虑的就是数据迁移的工作量。如果要操作员从/etc/passwd和/etc/group文件中逐个将信息重新录入,工作量将非常大。OpenLDAP为用户考虑到了这些迁移工作,提供了多个迁移工具的脚本程序,这些程序位于/usr/share/openldap/migration/目录中,在该目录中有很多扩展名为pl和sh的脚本文件,通过这些迁移工具,可以很方便地将系统中的用户迁移到LDAP目录数据库中。将系统中的用户信息迁移到LDAP目录数据库中。具体操作步骤如下:(1)修改/usr/share/openldap/migration/migrate_common.ph文件,在其中查找以下内容:$DEFAULT_BASE = dc=wyh,dc=com; #将其修改为目录服务器使用的根, (2)使用以下命令执行脚本migrate_base.pl,用来创建根项,并为Hosts、Networks、Group和People等创建低一级的组织单元:# ./migrate_base.pl base.ldif #执行migrate_base.pl生成base.ldif架构文件(3)由于前面已在LDAP服务器中创建了根项dc=wyh,dc=com,因此将base.ldif文件中的第1个条目删除,另外,在用户认证中只用到组和用户,也将其他无关条目删除,只保存以下内容:dn: ou=People,dc=wyh,dc=com ou: People objectClass: top objectClass: organizationalUnit dn: ou=Group,dc=wyh,dc=com ou: Group objectClass: top objectClass: organizationalUnit (4)使用以下命令将base.ldif文件中的条目导入目录数据库:# ldapadd - x -D cn=Manager,dc=wyh,dc=com -w secret -f base.ldif (5)开始迁移组信息。使用以下命令将/etc/group中的组信息保存到临时文件group.tmp中:# cat /etc/group group.tmp (6)系统组不导入LDAP目录数据库中,因此需对group.tmp文件中的信息进行编辑,只保留需要导入LDAP目录数据库的组的信息。(7)使用以下命令将组的数据生成LDIF条目信息:# ./migrate_group.pl group.tmp group.ldif (8)使用以下命令导出/etc/passwd中的用户数据,并删除不需要的用户,然后使用migrate_passwd.pl脚本生成LDIF文件:# cat /etc/passwd passwd.tmp # vi passwd.tmp # ./migrate_passwd.pl passwd.tmp passwd.ldif (9)使用以下命令将组和用户信息导入目录数据库:# ldapadd -x -D cn=Manager,dc=wyh,dc=com -w secret -f group.ldif #ldapadd -x -D cn=Manager,dc=wyh,dc=com -w secret -f passwd.ldifldap客户端配置nss_ldap-253-17.el5:包括两个 LDAP 访问客户机:nss_ldap 和 pam_ldap nss_ldap 是一组c库扩展,它允许 LDAP 目录服务器用作一个用户和组信息的主源 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进行用户登录认证,则可使用本地计算机中不存在的用户名进行登录操作。(1)修改客户端计算机中的/etc/sysconfig/authconfig文件,将以下项都修改为yes:USELDAP=yes USELDAPAUTH=yes USEMD5=no USESHADOW=yes USELOCAUTHORIZE=yes (2)修改客户端计算机中的/etc/ldap.conf(nss_ldap的配置文件),修改内容如下:host 00 01(ldap 主和从 服务器ip ,这样当一台挂掉,还能使用) BASE dc=wyh,dc=com ssl off (3)修改客户端计算机中的/etc/nsswitch.conf文件,在passwd、shadow、group后面都加上ldaprootclient tmp# grep ldap /etc/nsswitch.conf passwd: files ldap shadow: files ldapgroup: files ldaprootclient tmp#(4)要让 PAM 身份验证服务使用 OpenLDAP 服务器,将 pam_ldap 行加入到 /etc/pam.d/system-auth 中,位置在对应的标准 pam_unix.so 条目之后。rootclient tmp# cat /etc/pam.d/system-auth#%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth required pam_env.soauth sufficient pam_unix.so nullok try_first_passauth sufficient pam_ldap.so use_first_passauth requisite pam_succeed_if.so uid = 500 quietauth required pam_deny.soaccount required pam_unix.soaccount sufficient pam_succeed_if.so uid 生成证书请求-到CA上签署证书(这里是同一台,本地就可以签署)3 在/etc/openldap目录下创建一个目录certs专门存放证书,权限设置为700 ldap.ldap4 将ca证书cacert.pem和ldap的web.crt和web.key 复制到/etc/openldap/certs目录下5 编辑/etc/openldap/slapd.conf 加入以下几行TLSCACertificateFile /etc/openldap/certs/cacert.pemTLSCertificateFile /etc/openldap/certs/web.crtTLSCertificateKeyFile /etc/openldap/certs/web.keyTLSVerifyClient never说明:TLSVerifyClient never、allow、try、demand #设置是否验证客户端发起的tls连接。never:默认选项,不验证客户端证书。allow:检查客户端证书,没有证书或证书错误,都允许连接。try:检查客户端证书,没有证书(允许连接),证书错误(终止连接)。demand | hard | true:检查客户端证书,没有证书或证书错误都将立即终止连接。启用非默认TLSVerifyClient设置,为了使用外部身份验证机制和SASL TLS会话。客户端设置6 编辑/etc/openldap/ldap.conf文件和/etc/ldap.confrootcentos # rpm -qf /etc/ldap.conf #这个是nss_ldap-253-17.el5系统命名服务的配置文件nss_ldap-253-17.el5rootcentos # rpm -qf /etc/openldap/ldap.conf #这个是ldap基本服务的配置文件openldap-2.3.43-29.el5_11 #默认已安装,用来提供LDAP服务的基本文件目录rootcentos # rpm -qf /etc/openldap/slapd.conf openldap-servers-2.3.43-29.el5_11以下是编辑完成的配置文件ldapnameclient $ grep -E $|# -v /etc/openldap/ldap.conf BASE dc=wyh,dc=comTLS_CACERTDIR /etc/openldap/cacertsTLS_CACERT /etc/openldap/cacerts/cacert.pemURI ldaps:/webTLS_REQCERT demandrootclient $rootclient $ grep -E $|# -v /etc/ldap.conf #nss验证要使用的配置文件,加入以下内容BASE dc=wyh,dc=comURI ldaps:/web:636 #使用的的域名和端口,这个域名,就是ldap服务器申请证书时填写的域名,必须保持一至TLS_REQCERT demand说明TLS_REQCERT never、allow、try、demand | hard设置是否在TLS会话中检查server证书。Never:不检查任何证书。Allow:检查server证书,没有证书或证书错误,都允许连接。Try:检查server证书,没有证书(允许连接),证书错误(终止连接)。demand | hard:检查s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论