将 AIX 5.3 上的 IBM Network Authentication Service 作为密钥分发中心
级别: 中级
Sandeep Patil (rsandeep@in.ibm.com), 软件工程师, IBM
Prashant Sodhiya (psodhiya@in.ibm.com), Staff Software Engineer, IBM
了解如何配置 Microsoft Windows 2003 Server,以使用 AIX 5.3 系统上承载的 IBM Network Authentication Service (IBM NAS) 密钥分发中心 (KDC) 对 Terminal Service 用户进行身份验证。这样的设置不仅提供了 Terminal Service 用户的 Kerberized 身份验证,而且允许用户跨 AIX 和 Windows Server 系统拥有统一的用户 ID 和密码。它允许应用程序开发人员在跨系统的 Kerberized 应用程序中利用 IBM NAS 和 Windows 之间的 Kerberos 互操作性优点。
引言
Kerberos 为网络用户提供了一种安全的身份验证手段,是最流行的身份验证机制之一。大多数现代操作系统都支持基于 Kerberos(第 5 版)的身份验证。IBM AIX® 5.3 也支持基于 Kerberos 的身份验证。
Kerberos 的 IBM 版本称为 IBM Network Authentication Service (IBM NAS),可以从 AIX 5.3 Expansion Pack CD 安装它。IBM NAS for AIX 同时支持 Kerberos 客户机和 Kerberos 服务器。全球的许多企业都使用 IBM NAS for AIX 作为 Kerberos 域的密钥分发中心 (KDC)。Network File System (NFS) Version 4 部署、IBM DB2® Universal Database™ (DB2® UDB™) 安全、 Kerberized AIX 集成的登录、企业级身份验证等都在使用它。
当今的客户一般都有异构环境,其中混合了 UNIX® 和 Windows® 系统。异构环境的管理员所面对的一个主要挑战是跨不同系统拥有统一的用户 ID 和密码,最好具有集中的身份验证服务器。Microsoft® Windows Server 版本提供了一个称为 Terminal Services 的工具,在 Windows 世界变得广泛流行。该工具允许多个用户同时登录一个 Windows 服务器。Microsoft Windows Server 版本还支持基于 Kerberos 的身份验证,这种身份验证机制与 IBM NAS 是可互操作的。
在本文中,管理员将了解如何配置 Microsoft Windows 2003 Server,以使用 AIX 5.3 系统上承载的 IBM NAS KDC 来对 Terminal Service 用户进行身份验证。这样的设置不仅提供了 Terminal Service 用户的 Kerberized 身份验证,而且允许用户跨 AIX 和 Windows Server 系统拥有统一的用户 ID 和密码,并且允许应用程序开发人员在跨系统的 Kerberized 应用程序中利用 IBM NAS 和 Windows 之间的 Kerberos 互操作性优点。
场景:AIX 上的 IBM NAS KDC 与 Windows Terminal Service 的 Kerberized 身份验证
我们将使用一个场景来指导您完成所需的相关步骤,以设置 AIX 系统上的 IBM NAS KDC,并通过将 Windows 2003 Server 配置为使用 IBM NAS KDC 来实现 Windows Terminal Service 的 Kerberized 身份验证。
本文中的示例使用了以下定义:
Kerberos 域名
AIXKERBEROS.IN.IBM.COM
KDC (IBM NAS 1.4)
主机名:fsaix11.in.ibm.com,操作系统:AIX 5.3
Windows Terminal Service
主机名:windce14.in.ibm.com,操作系统:Windows 2003 Server(Service Pack 1,附有文章 ID 902336 所描述的 Hotfix)
Kerberos 管理员名称
admin/admin
图 1 显示了该示例的设置。
图 1. 示例设置
在 AIX 5.3 上安装和配置 IBM NAS 服务器
本部分介绍 AIX 5.3 上的 IBM NAS 服务器 (Kerberos KDC) 安装和配置。
在 AIX 5.3 上安装 Kerberos KDC
IBM NAS 随 AIX 5.3 Expansion Pack CD 一起提供。要安装 IBM NAS 服务器包,请安装 krb5.server.rte 文件集。可以使用以下命令来安装 NAS 服务器文件集:
[root@fsaix11 / ]# hostname
fsaix11.in.ibm.com
[root@fsaix11 / ]# installp -aqXYgd . krb5.server
然后导出以下 PATH 以确保从各自的 IBM NAS 目录执行 IBM NAS 命令:
[root@fsaix11 / ]# export PATH=/usr/krb5/sbin:/usr/krb5/bin:$PATH
在 AIX 5.3 上配置 Kerberos KDC
要在 AIX 计算机上配置 IBM NAS 服务器,请使用下面清单 1 中的命令。在此示例中,我们将使用遗留配置,其中主体存储在本地文件系统上的数据库中。除了使用遗留配置外,还可以使用 LDAP 目录插件将 IBM NAS 服务器配置为使用轻量级目录访问协议 (LDAP)。有关带 LDAP 的 IBM NAS 配置的更多信息,请参阅 AIX Version 5.3 Expansion Pack CD 附带的 IBM NAS Version 1.4 Administration Guide。
清单 1. 在 AIX 计算机上配置 IBM NAS 服务器
[root@fsaix11 / ]# hostname
fsaix11.in.ibm.com
[root@fsaix11 / ]# /usr/krb5/sbin/config.krb5 -S -d in.ibm.com -r
AIXKERBEROS.IN.IBM.COM
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
Creating /var/krb5/krb5kdc/kdc.conf...
Creating database files...
Initializing database '/var/krb5/krb5kdc/principal' for realm 'AIXKERBEROS.IN.IBM.COM'
master key name 'K/M@AIXKERBEROS.IN.IBM.COM'
You are prompted for the database Master Password.
It is important that you DO NOT FORGET this password.
Enter database Master Password:
Re-enter database Master Password to verify:
WARNING: no policy specified for admin/admin@AIXKERBEROS.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Enter password for principal "admin/admin@AIXKERBEROS.IN.IBM.COM":
Re-enter password for principal "admin/admin@AIXKERBEROS.IN.IBM.COM":
Principal "admin/admin@AIXKERBEROS.IN.IBM.COM" created.
Creating keytable...
Creating /var/krb5/krb5kdc/kadm5.acl...
Starting krb5kdc...
krb5kdc was started successfully.
Starting kadmind...
kadmind was started successfully.
The command completed successfully.
由于 Windows Kerberos 实现目前仅支持 DES-CBC-MD5 和 DEC-CBC-CRC 加密类型,您需要更改 IBM NAS Kerberos 服务器的默认加密设置,以便 Windows 工作站能够向 IBM NAS 服务器验证其身份。必须在承载 IBM NAS KDC 的 AIX 计算机(在此例中为 fsaix11.in.ibm.com)上做出以下更改:
• 编辑 /var/krb5/krb5kdc/kdc.conf 文件,更改 supported_enctypes 的值,使 des-cbc-md5:normal 和 des-cbc-crc:normal 位于加密类型列表的开头。
• 编辑之后,/var/krb5/krb5kdc/kdc.conf 文件的 supported_enctypes 部分应该与以下内容类似:
supported_enctypes = des-cbc-md5:normal des-cbc-crc:normal des3-cbc-sha1:normal
arcfour-hmac:normal aes256-cts:normal
重新启动 AIX NAS 服务器守护进程(例如,krb5kdc 和 kadmind),以使上面的加密类型更改生效。要重新启动 AIX NAS 服务器守护进程,请使用以下命令,如清单 2 所示。
清单 2. 重新启动 AIX NAS 服务器守护进程
[root@fsaix11 / ]# stop.krb5
Stopping /usr/krb5/sbin/krb5kdc...
/usr/krb5/sbin/krb5kdc was stopped successfully.
Stopping /usr/krb5/sbin/kadmind...
/usr/krb5/sbin/kadmind was stopped successfully.
The command completed successfully.
[root@fsaix11 / ]# start.krb5
Starting krb5kdc...
krb5kdc was started successfully.
Starting kadmind...
kadmind was started successfully.
The command completed successfully.
Windows Terminal Service 用户所需的 Kerberos 主体
现在您需要创建与希望通过网络进行 Kerberized 身份验证的 Windows Terminal Service 用户(和服务)相对应的 Kerberos 主体。在此设置中,您希望使用 AIX 5.3 计算机 fsaix11.in.ibm.com 上承载的 IBM NAS KDC,对承载 Windows Terminal Service 的 windce14.in.ibm.com 计算机的 "administrator" 用户进行身份验证。您需要在 fsaix11.in.ibm.com 上使用 IBM NAS 的 kadmin.local 命令,创建 Kerberos 主体 administrator 和 host/windce14.aixkerberos.in.ibm.com,如下面的清单 3 所示。
清单 3. kadmin.local 命令
[root@fsaix11 / ]# kadmin.local
kadmin.local: ank -pw laurel administrator
WARNING: no policy specified for administrator@AIXKERBEROS.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Principal "administrator@AIXKERBEROS.IN.IBM.COM" created.
kadmin.local: ank -pw laurel host/windce14.aixkerberos.in.ibm.com
WARNING: no policy specified for
host/windce14.aixkerberos.in.ibm.com@AIXKERBEROS.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Principal "host/windce14.aixkerberos.in.ibm.com@AIXKERBEROS.IN.IBM.COM" created.
管理员需要创建与每个 需要 Kerberos 身份验证的 Windows Terminal Service 用户相对应的 Kerberos 主体。在此示例中,我们仅针对 "administrator" 主体进行演示。
Windows 2003 Server Terminal Services 准备工作
如果已经在环境中部署了 Windows 2003 Server Terminal Server,您所需做的工作就是安装 Microsoft Hotfix for Terminal Services。为了使 Terminal Services 能够正确地处理 Windows 2003 Server 上被配置为使用 IBM NAS KDC 的 Kerberized 身份验证,您必须安装 Microsoft 为基于 Windows Server 2003 的 Terminal Server 提供的一个 Hotfix。
安装该 Hotfix(或实施建议的解决办法)以后,您就为配置 Windows 2003 Server 以使用 IBM NAS KDC 和使用 Kerberized 身份验证来运行 Windows Terminal Service 准备就绪了。有关 Microsoft Terminal Server 安装和配置的详细信息,请参阅相关 Microsoft 文档。
配置 Windows 2003 Server(Kerberos 客户机)以使用 IBM NAS 服务器
安装该 Hotfix 以后,您需要配置 Windows 2003 Kerberos 客户机以使用 AIX 5.3 上的 IBM NAS 服务器。为此,您需要从 Windows 2003 Server CD 下载 Resource Kit Tools,从而安装 Windows Kerberos 实用工具(ksetup、ktpass 等)。
要配置 Windows 2003 Server 以充当 IBM NAS 服务器的 Kerberos 客户机,请完成下列步骤:
1. 通过使用 ksetup 命令,将 Windows Server (windce14.in.ibm.com) 设置到您的 Kerberos 域,使其成为 Kerberos 工作组的一部分:
C:\>hostname
windce14
C:\> ksetup /setdomain AIXKERBEROS.IN.IBM.COM
2. 通过指定 Kerberos 域名和 Kerberos 服务器名,将 Windows Server 计算机配置到 Kerberos 域,如下所示:
C:\> ksetup /addkdc AIXKERBEROS.IN.IBM.COM fsaix11.in.ibm.com
3. 设置本地计算机帐户密码,如下所示:
C:\> ksetup /setmachpassword laurel
此密码必须与您从 kadmin.local 调用 ank 来创建 Kerberos 主体 host (host/windce14.aixkerberos.in.ibm.com) 时所使用的密码匹配(请参见前面的解释)。
4. 将 Kerberos 用户映射到本地 Windows 用户。下面的命令将本地 Windows 用户 administrator 映射到 Kerberos 主体 administrator@AIXKERBEROS.IN.IBM:
C:\> ksetup /mapuser administrator@AIXKERBEROS.IN.IBM.COM administrator
5. 重新启动计算机以使更改生效。
图 2 总结了上面在 Windows 计算机上执行的所有步骤。
图 2. 作为 AIX KDC 的 Kerberos 客户机的 Windows 2003 Server 配置
对设置进行测试
您现在已经为针对 AIX V 5.3 计算机上承载的 IBM NAS KDC 执行 Windows Terminal Service 用户的 Kerberized 身份验证准备就绪。请使用远程桌面连接,从任何 Windows 桌面计算机登录该 Windows Server 计算机 (windce14.in.ibm.com)。
连接时,您将看到 windce14.in.ibm.com 计算机的登录屏幕。请选择“Log on to”。您应该看到自己创建的 Kerberos 域也出现在下拉列表中。现在输入您的 Kerberos 用户名和密码(在此例中,用户名为 administrator,密码为 laurel),在"登录到"选项中选择“AIXKERBEROS.IN.IBM.COM(Kerberos 域)”,然后选择“OK”。随即会执行 Kerberized 身份验证过程,并在成功时将该 Terminal Service 用户登录到 Windows 计算机中。
图 3 显示了对 Windows 服务器计算机的远程登录。
图 3. Windows Terminal Service 用户针对 IBM NAS KDC 的 Kerberized 身份验证
结束语
本文介绍了管理员如何使用 AIX 5.3 上的 IBM NAS KDC 执行 Windows 2003 Terminal Service 的身份验证。这应该有助于简化管理,并且还允许用户跨 AIX 和 Windows Terminal Service 系统拥有公共的用户 ID 和密码。
参考资料
学习
• 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
• Configuring AIX 5L for Kerberos Based Authentication Using Windows Kerberos Service:阅读此白皮书以了解如何使用 Kerberos 作为使用 Windows 2000/2003 Server Kerberos Service 的 AIX 的替代身份验证机制。
• "A Kerberos primer"(developerWorks,2001 年 11 月):了解 Kerberos 及其部分特性。
• Windows Server 2003 Terminal Services:了解 Windows Server 2003 中的 Terminal Services(它提供了用于应用程序部署的新选项、低带宽网络上更高效的数据访问、较旧硬件的重用、远程管理和其他任务)。
• AIX and UNIX:想了解更多内容吗?developerWorks 的“AIX and UNIX”专区提供数百篇关于 AIX 和 UNIX 的文章以及入门级、中级和高级教程,将让您大开眼界。
• AIX and UNIX 新手入门:请访问“AIX and UNIX 新手入门”页以了解有关 AIX and UNIX 的更多信息。
• developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。
• AIX 5L Wiki:AIX 相关技术信息的协作环境。
• 播客:收听播客并与 IBM 技术专家保持同步。
获得产品和技术
• IBM 试用软件:使用 IBM 软件开发您的下一个项目,可直接从 developerWorks 下载这些试用软件。
• AIX 5L Expansion Pack and Web Download Pack:立即开始下载。
讨论
• 参与 AIX and UNIX 论坛:
o AIX 5L —— 技术
o AIX for Developers 论坛
o Cluster Systems Management
o IBM Support Assistant
o 性能工具——技术
o 虚拟化——技术
o 更多 AIX and UNIX 论坛
• 参与 developerWorks 博客,从而参加到 developerWorks 社区中来。
作者简介
Sandeep Patil 拥有印度浦那大学的计算机科学与工程学士学位。他已在 IBM 工作了五年,着重研究分布式技术,包括 DCE、SARPC,以及安全产品如 IBM Network Authentication Services (IBM Kerberos)。他参与过开发以及将 IBM NAS1.4 移植到 Windows 上。目前,他正在开发新的特性,并在为 IBM Network Authentication Services 实现与安全有关的 RFC。您可以通过 rsandeep@in.ibm.com 与他联系。
Prashant Sodhiya 是 IBM India Software Labs 的高级软件工程师。在过去两年里,他一直为 IBM 工作,目前在为 IBM Network Authentication Service (IBM Kerberos) 开发新特性和产品支持。在加入 IBM 前,他与 Centre for Development of Advanced Computing (CDAC) 在网络安全领域进行了三年的合作。Prashant 拥有印度 Gwalior 大学的计算机科学和工程学学士学位。您可以通过 psodhiya@in.ibm.com 与他联系。