Sun 企业鉴别机制指南

备份和传播 Kerberos 数据库

将 Kerberos 数据库从主 KDC 传播到从 KDC 是其中一个最为重要的配置任务。如果传播发生得不够经常,主 KDC 和从 KDC 就会失去同步,因而如果主 KDC 关闭,从 KDC 将没有最新的数据库信息。另外,如果出于负载平衡的目的,一个从 KDC 业已配置为一个主 KDC,则将该从 KDC 用作主 KDC 的客户机将没有最新的信息。因此,基于您更改 Kerberos 数据库的频繁程度,确保传播发生得足够经常是十分重要的。

您在配置主 KDC 时,请将一个 cron 任务中的 kprop_script 设置为自动将 Kerberos 数据库备份到 /var/krb5/slave_datatrans 转储文件并将其传播到从 KDC。但是,与任何文件一样, Kerberos 数据库可能会毁坏。如果这在其中一个从 KDC 上发生,则您可能会根本注意不到,因为数据库的下一次自动传播会安装一个刷新副本。然而,如果这是发生在主 KDC 上,则在下一次传播过程中,已毁坏数据库被传播到所有的从 KDC。并且,已毁坏的备份复写主 KDC 上的前一未毁坏的备份文件。

因为在这种情况下没有任何 "安全"的备份副本,您还应当设置一个 cron 任务来周期性地将 slave_datatransdump 文件复制到另一位置,或者通过使用kdb5_utildump 命令,创建另一独立的备份副本。然后,如果您的数据库被毁坏,您就可以通过使用 kdb5_utilload 命令,重贮主 KDC 上的最近的备份。

另外需要注意的重要一点就是,因为数据库转储文件包含授权对象密钥,您必须保护该文件,使其免受未授权用户的访问 (默认情况是,只有作为 root 才有对数据库转储文件的读取/写入许可)。这包括只能使用 kprop 命令来传播数据库转储文件,以便为所传播的数据加密。另外, kprop 只将数据传播到从 KDC,这就将偶然把发送数据库转储到未授权的主机的可能性降至最低。


小心:小心:

如果 Kerberos 数据库是在其业已传播之后得到更新的,且此后在下一次传播之前数据库遭到毁坏,则从 KDC 将不包含更新: 更新将丢失。因为这一情况,如果您在一次正常计划的传播之前,将重要的更新添加到数据库,则您应当手动传播数据库,以避免数据损失。


kpropd.acl 文件

KDC 上的 kpropd.acl 文件提供了主机授权对象名称的一个列表,每行一个名称,指定 KDC 可以通过传播机制从其收到一个经过更新的数据库的系统。如果主 KDC 被用来传播所有的从 KDC,则每个从 KDC 上的 kpropd.acl 文件只需要包含主 KDC 的主机授权对象名称。

然而,本指南中的 SEAM 安装和后续的配置步骤指示您将同一 kpropd.acl 文件添加到主 KDC 和从 KDC。该文件包含所有的 KDC 主机授权对象名称。该配置允许您从任意的 KDC 进行传播,以防备传播 KDC 暂时变为不可用。而且,在所有的 KDC 上保留一个相同的副本,使得维护起来较为容易。

kprop_script 命令

kprop_script 命令使用 kprop 命令将 Kerberos 数据库传播到其它的 KDC。 (如果 kprop_script 是在一个从 KDC 上运行的,则其将从 KDC 的副本 Kerberos 数据库传播到其它的 KDC。) kprop_script 接受主机名的一个列表作为变元,其间用空格隔开,表示所要传播的 KDC。

kprop_script 运行时,将 Kerberos 数据库的一个备份创建到 /var/krb5/slave_datatrans 文件,并将该文件复制到所指定的 KDC。 Kerberos 数据库被锁定,直到传播结束。