在一个指定的最大时间量 (即 时钟相位差) 内,参与 Kerberos 鉴别系统的所有主机必须让其内部时钟同步化,这就提供了另一个 Kerberos 安全检查。如果时钟相位差在其中任意参与主机之间被超过,则客户机请求遭到拒绝。
时钟相位差还确定应用程序服务器必须对所有的 Kerberos 协议消息进行跟踪的时长,以便认可和拒绝重放的请求。因此,时钟相位差值越长,该应用程序服务器不得不收集的信息也就越多。
最大时钟相位差默认值为 300 秒 (五分钟),而您可以在 krb5.conf 文件的 libdefaults 一节中对此进行更改。
出于安全原因,不要增加时钟相位差超过 300 秒。
鉴于在各个 KDC 和 SEAM 客户机之间维护时钟同步很重要,推荐您使用网络时间协议 (NTP) 软件来做到这一点。从 Solaris 2.6 发行版开始,来自 University of Delaware 的网络时间协议 (NTP) 公产软件就包含在 Solaris 软件中。
使时钟同步的另一方法就是使用 rdate 命令和 cron 任务,与使用 NTP 相比,该过程需要较少的介入。然而,本节将继续以使用 NTP 为重点。而且,如果您使用网络来使时钟同步,则时钟同步协议自身必须是安全的。
NTP 使您可以在一个网络环境中管理精确的时间和/或网络时钟同步。 NTP 基本上是一个服务器/客户机实现方案。您挑选一个系统作为主时钟 (NTP 服务器),然后将所有您的其它系统设置为使其时钟与主时钟同步 (NTP 客户机)。这一切都是通过 xntpd 守候程序来完成的,该程序将一个 UNIX 系统设定和维护为符合因特网标准时间服务器的当天时间。图形 3-1 显示的是一个使用服务器/客户机 NTP 实现方案的示例。
如要确保各个 KDC 和 SEAM 客户机维护同步化时钟,请实施下列步骤:
在您的网络上设置一个 NTP 服务器 (这可以是主 KDC 之外的任何系统 )。请参见 "如何设置一个 NTP 服务器"。
在您配置网络上的 KDC 和 SEAM 客户机时,请将其设置为 NTP 服务器的 NTP 客户机。请参见 "如何设置一个 NTP 客户机"。
在要作为 NTP 服务器的系统上变为超级用户。
更改到 /etc/inet 目录。
将 ntp.server 文件复制到 ntp.conf 文件。
# cp ntp.server ntp.conf |
更改到 /etc/init.d 目录。
启动 xntpd 守候程序。
# ./xntpd start |