AIX 中的安全身份验证机制

身份验证机制可以验证允许哪些用户访问系统。管理员可以定义身份验证协议;并根据此协议验证用户凭证,并赋予用户访问系统的权限。AIX 提供了几种身份验证和识别模块。用户的身份验证和识别是根据 AIX 上的用户属性完成的。本文介绍了AIX 中用户身份验证和识别属性、可用的加载模块,以及 AIX 6.1 Tl07 和 AIX 7.1 Tl1 版本中引入的新身份验证属性。

Uma Chandolu, 软件工程师, IBM

Uma M. Chandolu 是一名 AIX 上的开发支持专家,拥有 6 年多在 AIX 环境中工作的大量实践经验,擅长 AIX 系统管理和其他子系统。他拥有与客户合作和处理客户关键型情景的经验。他曾是 “IBM developerWorks 投稿作者”。


developerWorks 投稿作者

2012 年 2 月 16 日

简介

身份验证系统上的用户身份的过程是用户身份验证机制的一个部分。各个应用程序的身份验证机制都不尽相同。管理员需要根据系统上的配置内容来确定哪种身份验证机制适合应用程序。

AIX 标准身份验证机制使用 crypt 函数来验证用户凭证。加密函数只使用用户密码字符串的前 8 个字符来验证用户的密码。AIX 5.3 Tl7 和 AIX 6.1 引入了支持新安全密码哈希算法的 Loadable Password Algorithm (LPA),取消了 8 位密码长度限制,并支持 255 位密码。

AIX 提供加载模块。这些模块可以用于用户身份验证和识别。身份验证函数包含密码验证和修改。身份识别函数包括对用户和组账户信息的存储、检索和修改。而且,AIX 提供了可加载身份识别和身份验证框架;用户可以使用此接口编写自己的身份验证和识别模块。

本文介绍了关于 AIX 加载模块、用户识别、验证属性和可装入密码算法的信息。

概述

AIX 从 AIX 4.1 开始就支持可加载身份验证和身份识别。AIX 5.1 中引入了复合模块;这些模块结合了身份验证和数据库模块。身份验证模块提供了一些身份验证服务,如密码验证,而数据库模块提供了一些身份识别服务,如存储用户属性。

安全加载模块有 LDAP、NIS、KRB5 和 PAM。AIX 从 AIX 5.1 开始提供对这些模块的支持。在以下章节将会对这些模块作一些简单介绍。

AIX Security 子系统通过使用两个属性将身份验证和身份识别请求引导到正确的方法上。这两个属性是 “registry” 和 “SYSTEM”。registry 和 SYSTEM 属性在 AIX 用户和组账户管理和验证方面起到了重要作用。AIX 中的每个用户都有 registry 和 SYSTEM 属性值。而组只有 registry 值。

registry 属性

registry 属性指定在哪里存储和管理用户和组的身份识别信息。registry 属性通常会有一个值。可以根据对 registry 属性设置的值来定义用户的身份识别信息。

对于本地用户,registry 属性总是设置为 “files”;对于远程用户,registry 值根据用户定义情况而定。

可使用 chuser 命令设置用户的 registry 属性。例如:

 chuser registry=<load module name> <username>

请注意,对于远程用户,要在 chuser 命令中指定 -R 选项。

SYSTEM 属性

SYSTEM 属性可指定用户的身份验证语法。将会根据身份验证语法对系统上的用户进行身份验证。可以使用身份验证语法来描述多个或替代的身份验证方法。

SYSTEM 属性允许管理员指定一个精细粒度方法(或多个方法),用户必须满足此方法的要求才能通过验证,获得访问系统的权限。

当 SYSTEM 属性指定为 “files” 后,可以使用本地身份验证对用户进行验证。当 SYSTEM 属性指定为 “compat” 后,可以使用本地、NIS 或 LDAP 网络组身份验证对用户进行验证。

可以按照以下情况定义多个身份验证方法和模块。

  • 当 SYSTEM 指定为 “compat” 和 “LDAP”:
    • 需要使用 compat 和 LDAP 对用户进行身份验证。如果两个方法都返回 success,那么允许用户登录系统。
    • 如果任何一个验证模块验证用户失败,那么用户无法访问系统。
  • 当 SYSTEM 指定为 “compat AND (LDAP[UNAVAIL] or LDAP[SUCCESS] )”:
    • 需要使用 “compat” 模块对用户进行身份验证。而且,如果 LDAP 不可用或者 LDAP 返回 success,那么允许用户登录。

SYSTEM 和 registry 属性存储在 /etc/security/user 文件下。在用户登录时,会从 /etc/security/user 文件检索 SYSTEM 和 registry 属性。对于远程用户,如 LDAP,也是从 /etc/security/user 文件检索 SYSTEM 属性。

可以使用 chuser 命令设置用户的 SYSTEM 属性。例如:

chuser SYSTEM=<load module name> <username>

对于远程用户,要在 chuser 命令中指定 -R 选项。

请注意,诸如 LDAP、Kerberos、PAM 和 NIS 这些加载模块需要在 /usr/lib/security/methods.cfg 或 /etc/methods.cfg 文件中进行定义。如果 methods.cfg 文件中不存在模块定义,那么用此模块为某个用户定义的语法就无法登录系统。

authcontroldomain 属性

AIX 从 AIX 6.1 Tl07 和 71 Tl01 版本开始引入新的替代身份验证控制属性 “authcontroldomain”。当此属性设置后,就可以在数据库存储或检索 SYSTEM 和 registry 属性。对于本地用户,无论 authcontroldomain 是什么值,SYSTEM 和 registry 属性都存储在 /etc/security/user 文件中。

需要用加载模块名定义 authcontroldomain 属性,而模块名是在 /etc/methods.cfg 或 usr/lib/security/methods.cfg 文件中定义。必需在 /etc/security/login.cfg 文件中 usw 小节下定义该属性。

可以使用 chsec 命令设置系统的 authcontroldomain 属性。例如:

chsec -f /etc/security/login.cfg -s usw -a authcontroldomain=LDAP

请注意,authcontroldomain 属性对本地用户无效。

AIX 安全身份验证模块

AIX 安全身份验证模块有:

  • 网络信息服务 (Network Information Service, NIS)
  • 轻量级目录访问协议 (Light weight Directory Access protocol, LDAP)
  • Kerberos
  • 插入式验证模块 (Pluggable Authentication Module, PAM)

网络信息服务 (NIS)

Network Information Service 也称为 “黄页”,或有时称为 “Name Services”。NIS 遵循客户端/服务端基础架构;它将信息存储在 NIS 服务器的一组文件中,这些文件被称为映射。这些映射包含用户、组和主机信息。NIS 客户端使用这些映射文件来检查 NIS Server 上的 NIS 用户、组或主机条目。请参阅 参考资料 一节获取关于配置 NIS 服务器和客户端的信息。

使用 NIS 的优势就是易于管理 NIS 服务器上的数据。

使用 NIS 的劣势是:

  • NIS 将信息存储在普通文件系统中。
  • NIS 不适合管理大型网络。
  • 如果系统上的用户、组和主机信息发生任何更改,那么 NIS 服务器就需要更新映射文件。
  • 在整个网络中以明文格式传输信息。

轻量级目录访问协议 (LDAP)

LDAP 是基于分布式计算的客户端/服务器模型。它为必需的全局访问提供了一致的身份验证和授权服务。LDAP 以目录信息树 (DIT) 格式在 LDAP 服务器上存储信息。LDAP 是一个面向连接的协议,可在 TCP/IP 上运行;LDAP 客户端根据 LDAP 用户凭证连接到 LDAP 服务器。

从 AIX 4.3 版本开始可以使用 LDAP 安全模型。该模块作为 LDAP 客户端守护进程和 AIX Security 库的接口。AIX LDAP 模块与 AIX 操作系统完全集成。

在异构环境中,可以配置 AIX LDAP 客户端用于任何类型的 LDAP 服务器。AIX LDAP 客户端支持 AIX、rfc2307、rfc2307aix 和 SFU 模式。

LDAP 安装和配置

AIX 提供了 mksecldap 命令用来配置 AIX 系统上的 LDAP 服务器和客户端。请参阅 参考资料 一节了解 LDAP 服务器和客户端的配置。

IBM LDAP 文件集随 AIX 安装介质提供。文件集以 idsldap 名称开始。AIX 5.3 附带 LDAP 5.2 版本文件集,而这些文件集以 ldap 名称开始。

LDAP 优势

  • LDAP 以 DIT 格式将信息存储在数据库中,而且信息很容易被 LDAP 客户端访问。
  • LDAP 在 TCP/IP 和 SSL 上运行。
  • 通过使用 LDAP,很容易将数据库从一个服务器迁移到另一个服务器上。
  • LDAP 适合管理大型网络。

LDAP 劣势

  • LDAP 在整个网络中以普通文本格式传输信息。
  • LDAP 不适合动态事务,如银行事务。

Kerberos

Kerberos 是一个计算机网络身份验证协议名称,它允许在非安全的网络进行通信的单个计算机以安全方式向对方证明身份。Kerberos 使用对称密钥加密,并需要一个可信的第三方。

AIX 从 AIX 4.3 版本开始附带 Kerberos 模块 (KRB5),该模块提供用户身份验证。Kerberos 只是一个身份验证模块,需要集成到其他数据库模块中。

AIX 提供了命令来配置 Kerberos 服务器和客户端,它们都是 bos.rte.security 文件集的一部分。在默认情况下,文件集会安装到系统上。

使用以下步骤在 AIX 系统上配置 Kerberos 服务器:

  • 使用 smit install 命令在系统上安装 krb5.server.rte 文件集。可以在 AIX 安装介质上找到这些文件集。
  • 使用 mkkrb5srv 命令配置 Kerberos。

运行以下命令来配置 Kerberos 服务器:

 mkkrb5srv -r <realm name> -d <domain name> -a <admin user>/<admin
    user's passwd>

该命令会生成 /etc/krb5/krb5.conf、/var/krb5/krb5kdc/kdc.conf 和 /etc/krb5/ krb5_cfg_type 文件。

/etc/krb5/krb5.conf 文件包含有关 Kerberos 服务器的详细信息和所有加密算法信息。/etc/krb5/krb5_cfg_type 文件指定了系统的类型:master、slave 或 client。

/var/krb5/krb5kdc/kdc.conf 文件可以设置 kdc_ports、kadmind_port、max_life、max_renewable_life、master_key_type 和 supported_enctypes 变量的值。该文件还可以设置 database_name、admin_keytab、acl_file、dict_file 和 key_stash_file 变量的路径。

mkkrb5srv 命令会提示用户输入 master 管理员密码。该命令会启动系统上的 “krb5kdc” 和 “kadmind” 守护进程。Kadmind 守护进程是管理 Kerberos 服务器上主要的管理任务。

按照以下步骤配置 AIX 系统上的 Kerberos 客户端:

  • 使用 smit install 命令在系统上安装 krb5.client.rte、krb5.toolkit.adt 文件集。
  • 使用 mkrkb5clnt 命令配置 Kerberos。

运行以下命令来配置 Kerberos 客户端:

 mkkrb5clnt -r <realm name> -c <KDC server> -s <Kerberos server> -a <admin user 
    /admin user's passwd> -d <domain name> 
-i <database name> -A -K -T

该命令会生成 /etc/krb5/krb5.conf 文件。可以用命令调用过程中默认的域名称、KDC 服务器、Kerberos 管理员服务器和域名称来更新 /etc/krb5/krb5.conf。

请注意,可以将 Kerberos 设置为使用多个域和多个 KDC 服务器。请参阅 参考资料 一节中关于在 kerberos 客户端上配置多个 kerberos 域的内容。

Kerberos 优势

  • Kerberos 适合于非安全的环境。
  • Kerberos 使用对称密钥加密机制。
  • Kerberos 在整个网络中以加密格式传输信息。

Kerberos 劣势

  • Kerberos 只提供身份验证服务;对于身份识别服务,它依赖于其他模块。
  • Kerberos 身份验证机制依赖于可信的第三方。如果第三方包含安全,就会产生问题。
  • 如果 kerberos 服务凭证 (TGT) 被窃取,那么它可以被用来访问网络,直到过期。

插入式验证模块 (PAM)

可插入验证模块为管理员提供了将任意类型的验证服务与系统验证机制集成的接口。AIX 5.1 开始可以使用 PAM,从 AIX 5.3 版本开始完全集成。在 AIX 5.3 版本中,所有服务都与 PAM 集成。请查阅 参考资料 一节中关于配置/启用 AIX 系统上的 PAM 和 PAM 服务的内容。

PAM 优势

  • PAM 模块可以与任何类型的验证服务集成。
  • 可以对多个应用程序使用一个验证机制。

PAM 劣势

  • PAM 是验证模块,它只提供身份验证服务。

可装入密码算法 (Loadable Password Algorithms,LPA)

从 AIX 5.3 Tl07 和 AIX 6.1 开始,AIX 5.3 允许使用不同的加密算法配置用户的密码。这让用户可以设置长达 255 位的密码。在默认情况下,用户的密码是用 DES 加密算法加密的。

从 AIX 5.3 Tl07 和 AIX 6.1 版本开始,引入了以下的密码算法:

  • MD5
  • SHA
    • SHA1
    • SHA 256
    • SHA 512
  • Blowfish

密码算法定义是在 /etc/security/pwdalg.cfg 文件中。在 /etc/security/login.cfg 文件中 usw 小节下设置密码。使用如下命令设置密码算法:

 chsec -f /etc/security/login.cfg -s usw -a pwd_algorithm=<algorithm name>

请查阅 参考资料 一节中关于密码哈希算法的更多信息。

请注意,当在一个系统上设置新的密码算法后,当用户下一次密码更改时,用户的密码就会用此新算法更改。

长用户名支持

AIX 5.3 允许将用户和组名从 8 位扩展到 255 位。使用如下命令获取系统上允许的最长登录名。例如:

 # lsattr -El sys0 -a enhanced_RBAC

使用以下命令更改登录名长度:

 chdev -l sys0 -a max_logname=255

当系统下次重启时,更改生效。

结束语

安全身份验证机制对 AIX 用户非常有用。AIX 用户的属性,如 registry 和 SYSTEM,在用户身份验证机制中起着重要作用。安全加载模块为用户和组提供了身份验证和识别服务。

参考资料

学习

  • AIX Security Guide 提供了关于安全身份验证的完整信息。
  • AIX 中的 LDAP 配置管理和故障诊断”(developerWorks,2007 年 5 月)概述了 LDAP 的配置和管理。
  • AIX 插入式验证模块” (developerWorks,2011 年 7月)概述了插入式验证模块和服务。
  • 在 AIX 上配置网络信息服务服务器和客户机”(developerWorks,2007 年 11 月)提供了配置 NIS 服务器和客户端的分步指导。
  • 针对多个 Kerberos 领域配置 AIX 客户机”(developerWorks,2009 年 10 月)提供了将客户端配置为多个领域的分步指导。
  • 可装入密码算法(LPA) 提供了关于 AIX 上密码哈希算法的更多信息。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • 加入 developerWorksLive! 技术讲座,获取最新的 IBM 产品,工具以及 IT 行业趋势的资讯。
  • 观看 developerWorks 演示中心,包含面向初学者的产品安装和设置演示,以及为经验丰富的开发人员提供的高级功能的演示。

获得产品和技术

  • 以最适合您的方式 IBM 产品评估试用版软件:下载产品试用版,在线试用产品,在云环境下试用产品,或者在 IBM SOA 人员沙箱 中花费几个小时来学习如何高效实现面向服务架构。
  • 免费试用 IBM 软件。下载试用版、登录到在线试用版、在沙箱环境下使用产品或通过云访问。有 100 多种 IBM 产品试用版可供选择。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=794177
ArticleTitle=AIX 中的安全身份验证机制
publish-date=02162012