在 Oracle® Solaris 11.2 中管理 Kerberos 和其他验证服务

退出打印视图

更新时间: 2014 年 9 月
 
 

备份和传播 Kerberos 数据库

将 Kerberos 数据库从主 KDC 服务器传播到从 KDC 服务器是最重要的配置任务之一。如果传播发生频率不够高,主 KDC 服务器与从 KDC 服务器将无法保持同步。因此,如果主 KDC 服务器关闭,从 KDC 服务器将不能获取最新的数据库信息。此外,如果出于负载平衡目的将从 KDC 服务器配置为主 KDC 服务器,则将该从 KDC 服务器用作主 KDC 服务器的客户机将不能获取最新的信息。

所以,必须确保传播发生频率足够高,或者基于更改 Kerberos 数据库的频率配置服务器进行增量传播。应首选增量传播,而不是其他传播方法。数据库手动传播需要更多管理开销,而完全传播效率低下。


Caution

注意  -  如果在计划的定期传播之前向 Kerberos 数据库添加了重要更新,应手动传播该数据库,以避免数据丢失。


kpropd.acl 文件

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

但是,本指南中所述的 Kerberos 安装和后续配置步骤将引导您在主 KDC 和从 KDC 上使用同一个 kpropd.acl 文件。该文件包含所有 KDC host 主体名称。通过此配置,在传播端 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 数据库处于锁定状态。

备份 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 服务器,这可以最大程度地降低将数据库转储文件意外发送到未经授权的主机的几率。

示例 4-13  手动备份 Kerberos 数据库

可以使用 kdb5_util 命令的 dump 命令备份数据库。在 root 拥有的目录中运行此命令。

# /usr/sbin/kdb5_util dump

在以下示例中,Kerberos 数据库将备份到名为 dumpfile 的文件。由于指定了 –verbose 选项,备份时会显示每个主体。由于未指定任何主体,因此将备份整个数据库。

# kdb5_util dump -verbose /var/user/kadmin/dumpfile
kadmin/kdc1.corp.example.com@CORP.EXAMPLE.COM
krbtgt/CORP.EXAMPLE.COM@CORP.EXAMPLE.COM
kadmin/history@CORP.EXAMPLE.COM
pak/admin@CORP.EXAMPLE.COM
pak@CORP.EXAMPLE.COM
changepw/kdc1.corp.example.com@CORP.EXAMPLE.COM

在以下示例中,转储仅包含 pakpak/admin 两个主体。

# kdb5_util dump -verbose pakfile pak/admin@CORP.EXAMPLE.COM pak@CORP.EXAMPLE.COM
pak/admin@CORP.EXAMPLE.COM
pak@CORP.EXAMPLE.COM

有关更多信息,请参见 kdb5_util(1M) 手册页。