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

备份和传播 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_datatrans 转储文件复制到另一位置,或者使用 kdb5_utildump 命令创建另一份单独的备份副本。这样,如果数据库受损,则可以使用 kdb5_utilload 命令在主 KDC 上恢复最新备份。

另一条重要注意事项是:由于数据库转储文件包含主体密钥,因此需要阻止未经授权的用户访问该文件。缺省情况下,只有 root 身份才具有读写数据库转储文件的权限。要阻止未经授权的访问,请仅使用 kprop 命令传播数据库转储文件,该命令会对要传送的数据进行加密。此外,kprop 仅将数据传播到从 KDC,这可以最大程度地降低将数据库转储文件意外发送到未经授权的主机的几率。


注意 – 注意 –

如果传播 Kerberos 数据库之后对其进行了更新,并且在下一次传播之前该数据库受损,则从 KDC 将不包含这些更新。这些更新将丢失。因此,如果要在计划的定期传播之前向 Kerberos 数据库中添加重要的更新,应手动传播该数据库,以避免数据丢失。


kpropd.acl 文件

KDC 上的 kpropd.acl 文件提供主机主体名称的列表(一个名称占一行),用于指定 KDC 可以通过传播从其接收更新数据库的系统。如果使用主 KDC 传播所有从 KDC,则每个从 KDC 上的 kpropd.acl 文件仅需包含主 KDC 的主机主体名称。

但是,本书中的 Kerberos 安装和后续配置步骤将指导您如何将相同的 kpropd.acl 文件添加到主 KDC 和从 KDC 中。此文件包含所有 KDC 主机主体名称。通过此配置,在传播 KDC 临时不可用时,可以从任何 KDC 进行传播。而且,通过在所有 KDC 上保留相同副本,可以更容易地维护配置。

kprop_script 命令

kprop_script 命令使用 kprop 命令将 Kerberos 数据库传播到其他 KDC。如果在从 KDC 上运行 kprop_script 命令,则会将该从 KDC 的 Kerberos 数据库副本传播到其他 KDC。kprop_script 的参数接受主机名列表,该列表以空格分隔,表示要传播的 KDC。

运行 kprop_script 时,将在 /var/krb5/slave_datatrans 文件中创建 Kerberos 数据库的备份,并将该文件复制到指定的 KDC。在完成传播之前,Kerberos 数据库处于锁定状态。