Windows 终端服务的 Kerberos 化验证

将 AIX 5.3 上的 IBM Network Authentication Service 作为密钥分发中心

了解如何配置 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 互操作性优点。

Sandeep Patil, 软件工程师, EMC

Sandeep Patil 的照片Sandeep Ramesh Patil 是 IBM India Software Lab 的软件咨询工程师。他已在 IBM 工作了七年,着重研究分布式技术,包括 DCE、SARPC 以及安全产品,比如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在开发新的特性,并在为 IBM Network Authentication Services 实现与安全有关的 RFC 及其产品支持。Sandeep 拥有 University of Pune,India 的计算机科学与工程学士学位。


developerWorks 大师作者

Prashant Sodhiya, Staff Software Engineer, EMC

Photo of Prashant SodhiyaPrashant 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 与他联系。



2006 年 10 月 30 日

引言

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:normaldes-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 服务器守护进程(例如,krb5kdckadmind),以使上面的加密类型更改生效。要重新启动 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 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 身份验证
Windows Terminal Service 用户针对 IBM NAS KDC 的 Kerberized 身份验证

结束语

本文介绍了管理员如何使用 AIX 5.3 上的 IBM NAS KDC 执行 Windows 2003 Terminal Service 的身份验证。这应该有助于简化管理,并且还允许用户跨 AIX 和 Windows Terminal Service 系统拥有公共的用户 ID 和密码。

参考资料

学习

获得产品和技术

讨论

条评论

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=171761
ArticleTitle=Windows 终端服务的 Kerberos 化验证
publish-date=10302006