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

同步 KDC 和 Kerberos 客户机的时钟

所有参与 Kerberos 验证系统的主机都必须在指定的最长时间(称为时钟相位差)内同步其内部时钟。针对这一要求,需要进行另一种 Kerberos 安全检查。如果任意两台参与主机之间的时间偏差超过了时钟相位差,则客户机请求会被拒绝。

时钟相位差还确定应用程序服务器必须跟踪所有 Kerberos 协议消息的时间长度,以便识别和拒绝重放的请求。因此,时钟相位差的值越大,应用程序服务器必须收集的信息就越多。

时钟相位差的最大缺省值为 300 秒(5 分钟)。可以在 krb5.conf 文件的 libdefaults 部分中更改此缺省值。


注 –

出于安全原因,不要将时钟相位差增大到超过 300 秒。


由于维护 KDC 和 Kerberos 客户机之间的同步时钟非常重要,因此应使用网络时间协议 (Network Time Protocol, NTP) 软件同步这些时钟。从 Solaris 2.6 发行版开始,Solaris 软件中提供了由美国特拉华大学开发的 NTP 公用软件。


注 –

同步时钟的另一种方法是使用 rdate 命令和 cron 作业(一种比使用 NTP 参与性更小的过程)。但是,本节重点介绍如何使用 NTP。并且,如果使用网络来同步时钟,时钟同步协议本身必须是安全的。


通过 NTP,可以在网络环境中管理准确时间或网络时钟同步,或者同时管理这两者。 本质上,NTP 是一种服务器/客户机实现。可以选择一个系统(NTP 服务器)作为主时钟。然后,设置所有其他系统(NTP 客户机),使这些系统的时钟与主时钟同步。

为了同步时钟,NTP 使用 xntpd 守护进程,该守护进程设置并维护 UNIX 系统时间,使其与 Internet 标准时间服务器的时间保持一致。以下给出了此服务器/客户机 NTP 实现的示例。

图 22–1 使用 NTP 同步时钟

该图显示了 NTP 中央服务器作为正在运行 xntpd 守护进程的 NTP 客户机和 Kerberos 客户机的主时钟。

确保 KDC 和 Kerberos 客户机保持时钟同步涉及以下步骤的实现:

  1. 在网络上设置 NTP 服务器。此服务器可以是除主 KDC 之外的任何系统。要了解 NTP 服务器任务,请参见《系统管理指南:网络服务》中的“管理网络时间协议(任务)”

  2. 在网络上配置 KDC 和 Kerberos 客户机时,将它们设置为 NTP 服务器的 NTP 客户机。要了解 NTP 客户机任务,请参见《系统管理指南:网络服务》中的“管理网络时间协议(任务)”