系统管理指南:安全性服务

Kerberos 用户命令

Kerberos V5 产品是一个单点登录系统,这表示只需键入一次口令即可。Kerberos V5 程序将为您执行验证操作(并可以选择执行加密操作),因为 Kerberos 已内置在每个熟知的现有网络程序套件中。 Kerberos V5 应用程序是添加了 Kerberos 功能的现有 UNIX 网络程序的版本。

例如,使用基于 Kerberos 的程序连接到远程主机时,该程序、KDC 和远程主机将执行一组快速协商。完成这些协商后,该程序便已代表您向远程主机证明了您的身份,并且远程主机已授予您访问权限。

请注意,基于 Kerberos 的命令会首先尝试使用 Kerberos 进行验证。如果 Kerberos 验证失败,将会出现错误或尝试 UNIX 验证,具体取决于和命令一起使用的选项。有关更多详细信息,请参阅每个 Kerberos 命令手册页中的 Kerberos Security 部分。

基于 Kerberos 的命令概述

基于 Kerberos 的网络服务是一些连接到 Internet 中某个位置的其他计算机的程序。这些程序如下:

这些程序具有可透明地使用 Kerberos 票证与远程主机协商验证并选择协商加密的功能。在大多数情况下,您只会注意到不必再键入口令即可使用这些程序,因为 Kerberos 将为您提供身份证明。

Kerberos V5 网络程序包括可用于执行以下操作的选项:


注 –

本节假定您已经熟悉这些程序的非 Kerberos 版本,并且将重点介绍 Kerberos V5 软件包添加的 Kerberos 功能。有关此处描述的命令的详细说明,请参阅其各自的手册页。


已将下列 Kerberos 选项添加至 ftprcprloginrshtelnet

-a

尝试使用现有票证自动登录。如果 getlogin() 返回的用户名与当前用户 ID 相同,则使用该用户名。有关详细信息,请参见 telnet(1) 手册页。

-f

不可重新转发的票证转发到远程主机。此选项与 -F 选项互斥。在同一命令中不能同时使用这两个选项。

如果您有理由相信需要向第三台主机中其他基于 Kerberos 的服务验证您的身份,则应转发票证。例如,您可能要远程登录到另一台计算机,然后从该计算机远程登录到第三台计算机。

如果远程主机上的起始目录使用 Kerberos V5 机制挂载了 NFS,则必须使用可转发票证。否则,将无法访问起始目录。也就是说,假定您最初登录到系统 1,然后从系统 1 远程登录到您的主机(系统2),该主机从系统 3 挂载您的起始目录。在这种情况下,除非在 rlogin 中使用 -f-F 选项,否则将无法访问起始目录,因为您的票证无法转发到系统 3。

缺省情况下,kinit 会获取可转发票证授予票证 (Ticket-Granting Ticket, TGT)。但是,您的配置在这方面可能会有所不同。

有关转发票证的更多信息,请参见转发 Kerberos 票证

-F

将 TGT 的可重新转发副本转发到远程系统。此选项与 -f 类似,但它允许访问更多(如第四台或第五台)计算机。因此,可将 -F 选项视为 -f 选项的超集。-F 选项与 -f 选项互斥。在同一命令中不能同时使用这两个选项。

有关转发票证的更多信息,请参见转发 Kerberos 票证

-k realm

请求指定的 realm 中的远程主机的票证,而不是使用 krb5.conf 文件来确定领域本身。

-K

使用票证来向远程主机验证,但不自动登录。

-m mechanism

指定 /etc/gss/mech 文件中列出的要使用的 GSS-API 安全机制。缺省值为 kerberos_v5

-x

加密此会话。

-X auth_type

禁用 auth-type 类型的验证。

下表显示具有特定选项的命令。"X" 表示命令包含该选项。

表 25–1 网络命令的 Kerberos 选项

 

ftp

rcp

rlogin

rsh

telnet

-a

 

 

 

 

-f

 

-F

 

 

-k

 

-K

 

 

 

 

-m

 

 

 

 

-x

-X

 

 

 

 

此外,ftp 还允许在其提示符下为会话设置保护级别:

clear

将保护级别设置为 "clear"(无保护)。此保护级别是缺省级别。

private

将保护级别设置为 "private"。通过加密保护数据传输的保密性和完整性。但是,并非所有 Kerberos 用户都可使用保密性服务。

safe

将保护级别设置为 "safe"。通过加密校验和保护数据传输的完整性。

也可以通过键入 protect,并后跟以上所示的任何保护级别(clearprivatesafe),在 ftp 提示符下设置保护级别。

转发 Kerberos 票证

基于 Kerberos 的命令概述中所述,某些命令允许您使用 -f-F 选项转发票证。通过转发票证,可以“链接”网络事务。例如,可以远程登录到一台计算机,然后从该计算机远程登录到另一台计算机。使用 -f 选项可转发票证,而使用 -F 选项则可重新转发已转发的票证。

图 25–2 中,用户 david 使用 kinit 获取了一个不可转发票证授予票证 (Ticket-Granting Ticket, TGT)。由于该用户未指定 -f 选项,因此该票证不可转发。在方案 1 中,该用户可以远程登录到计算机 B,但不能再登录到其他计算机。在方案 2 中,由于该用户尝试转发一个不可转发票证,因此 rlogin -f 命令失败。

图 25–2 使用不可转发票证

上文对该图进行了说明。

实际上,已设置了 Kerberos 配置文件,以便 kinit 在缺省情况下可获取可转发票证。但是,您的配置可能有所不同。为了便于说明,假定 kinit 不会获取可转发 TGT,除非使用 kinit -f 调用该命令。另请注意,kinit 不包含 -F 选项。TGT 可以是可转发,也可以是不可转发。

图 25–3 中,用户 david 使用 kinit -f 获取了可转发 TGT。在方案 3 中,由于该用户在 rlogin 中使用了可转发票证,因此可以访问计算机 C。在方案 4 中,由于票证不可重新转发,因此第二个 rlogin 失败。如方案 5 中所示,改用 -F 选项后,第二个 rlogin 将成功,并且票证可重新转发到计算机 D。

图 25–3 使用可转发票证

上文对该图进行了说明。

示例-使用基于 Kerberos 的命令

以下示例说明基于 Kerberos 的命令的选项的工作方式。

示例-将 -a-f-x 选项用于 telnet

在本示例中,用户 david 已经登录,并且要 telnet 到计算机 denver.example.com。该用户使用 -f 选项转发其现有票证,使用 -x 选项加密会话,并使用 -a 选项自动执行登录。由于该用户不打算使用第三台主机的服务,因此可使用 -f 而非 -F


% telnet -a -f -x denver.example.com 

Trying 128.0.0.5... 

Connected to denver.example.com. Escape character is '^]'. 

[ Kerberos V5 accepts you as "david@eng.example.com" ] 

[ Kerberos V5 accepted forwarded credentials ] 

SunOS 5.9: Tue May 21 00:31:42 EDT 2004  Welcome to SunOS 

%

请注意,david 的计算机使用 Kerberos 来向 denver.example.com 进行自我验证,并且以自己的身份自动登录。该用户具有一个加密会话(即该用户已有的票证副本),因此永远不必键入其口令。如果该用户使用了非 Kerberos 版本的 telnet,则可能会提示其输入口令,并将此口令在未加密的情况下通过网络发送。如果入侵者在此期间一直在观察网络通信流量,则可能会知道 david 的口令。

如果转发 Kerberos 票证,则 telnet(以及此处讨论的其他命令)将会在退出时销毁这些票证。

示例-使用带有 -F 选项的 rlogin

在此示例中,用户 jennifer 希望登录到自己的计算机 boston.example.com。该用户使用 -F 选项转发其现有票证,并使用 -x 选项加密会话。由于该用户在登录到 boston 后,可能希望执行需要重新转发票证的其他网络事务,因此会选择 -F 而非 -f。另外,由于该用户要转发其现有票证,因此不必键入其口令。


% rlogin boston.example.com -F -x

This rlogin session is using encryption for all transmissions.

Last login Mon May 19 15:19:49 from daffodil 

SunOS Release 5.9 (GENERIC) #2 Tue Nov 14 18:09:3 EST 2003 

%

示例-在 ftp 中设置保护级别

假定 joe 要使用 ftp 从计算机 denver.example.com 的目录 ~joe/MAIL 中获取其邮件并加密该会话。交换过程如下所示:


% ftp -f denver.example.com

Connected to denver.example.com

220 denver.example.org FTP server (Version 6.0) ready.

334 Using authentication type GSSAPI; ADAT must follow

GSSAPI accepted as authentication type 

GSSAPI authentication succeeded Name (daffodil.example.org:joe) 

232 GSSAPI user joe@MELPOMENE.EXAMPLE.COM is authorized as joe

230 User joe logged in.

Remote system type is UNIX.

Using BINARY mode to transfer files.

ftp> protect private

200 Protection level set to Private

ftp> cd ~joe/MAIL

250 CWD command successful.

ftp> get RMAIL

227 Entering Passive Mode (128,0,0,5,16,49)

150 Opening BINARY mode data connection for RMAIL (158336 bytes).

226 Transfer complete. 158336 bytes received in 1.9 seconds (1.4e+02 Kbytes/s)

ftp> quit

% 

要加密该会话,joe 需要将保护级别设置为 private