跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 管理:安全服务 Oracle Solaris 11.1 Information Library (简体中文) |
有时,KDC 使用的密钥版本号 (Key Version Number, KVNO) 与 /etc/krb5/krb5.keytab 中存储的系统托管服务的服务主体密钥不匹配。如果 KDC 中创建了一组新密钥,但没有在密钥表文件中更新这些新密钥,KVNO 可能会不同步。可以通过以下过程诊断此问题。
请注意,每个主体的 KVNO 都包含在列表中。
# klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 2 host/denver.example.com@EXAMPLE.COM 2 host/denver.example.com@EXAMPLE.COM 2 host/denver.example.com@EXAMPLE.COM 2 nfs/denver.example.com@EXAMPLE.COM 2 nfs/denver.example.com@EXAMPLE.COM 2 nfs/denver.example.com@EXAMPLE.COM 2 nfs/denver.example.com@EXAMPLE.COM
# kinit -k
# kvno nfs/denver.example.com nfs/denver.example.com@EXAMPLE.COM: kvno = 3
请注意,此处列出的 KVNO 是 3 而不是 2。
如果 krb5.conf 文件的格式不正确,则以下错误消息可能会显示在终端窗口中或记录在日志文件中:
Improper format of Kerberos configuration file while initializing krb5 library
如果 krb5.conf 文件格式有问题,关联的服务很容易受到攻击。您必须首先解决该问题,然后再允许使用 Kerberos 功能。
如果 Kerberos 数据库传播失败,请在从 KDC 与主 KDC 服务器之间尝试使用 /usr/bin/rlogin -x,反之亦然。
如果 KDC 已设置为限制访问,则会禁用 rlogin,因此无法使用它来解决该问题。要在 KDC 上启用 rlogin,必须启用 eklogin 服务。
# svcadm enable svc:/network/login:eklogin
解决此问题后,需要禁用 eklogin 服务。
如果 rlogin 无法正常运行,可能是因为 KDC 上的密钥表文件存在问题。如果 rlogin 可以正常运行,则问题不在于密钥表文件或名称服务,因为 rlogin 与传播软件使用同一个 host/host-name 主体。在这种情况下,请确保 kpropd.acl 文件正确。
如果挂载基于 Kerberos 的 NFS 文件系统失败,请确保 NFS 服务器上存在 /var/rcache/root 文件。如果文件系统不是由 root 所有,请删除该文件系统并再次尝试挂载。
如果访问基于 Kerberos 的 NFS 文件系统时出现问题,请确保您的系统和 NFS 服务器上启用了 gssd 服务。
如果在尝试访问基于 Kerberos 的 NFS 文件系统时出现 invalid argument 或 bad directory 错误消息,可能是因为在尝试挂载 NFS 文件系统时使用的不是全限定 DNS 名称。正在挂载的主机与服务器的密钥表文件中的服务主体主机名部分不相同。
如果服务器有多个以太网接口,并且已将 DNS 设置为使用“每个接口一个名称”的方案,而不是“每台主机多条地址记录”的方案,则也可能会出现此问题。对于 Kerberos 服务,应为每台主机设置多条地址记录,如下所示Ken Hornstein,"Kerberos FAQ",[http://www.cmf.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html#kerbdns],访问时间 2010 年 3 月 10 日。:
my.host.name. A 1.2.3.4 A 1.2.4.4 A 1.2.5.4 my-en0.host.name. A 1.2.3.4 my-en1.host.name. A 1.2.4.4 my-en2.host.name. A 1.2.5.4 4.3.2.1 PTR my.host.name. 4.4.2.1 PTR my.host.name. 4.5.2.1 PTR my.host.name.
在本示例中,此设置允许引用服务器的密钥表文件中的不同接口和一个服务主体(而非三个服务主体)一次。
如果在尝试成为系统超级用户时验证失败,并且已将 root 主体添加到主机的密钥表文件中,则需要检查两个可能的问题。首先,请确保密钥表文件中的 root 主体具有一个全限定主机名作为其实例。如果具有该名称,请检查 /etc/resolv.conf 文件,以确保系统已正确设置为 DNS 客户机。
为了可以监视凭证映射,请首先在 /etc/gss/gsscred.conf 文件中取消对以下行的注释。
SYSLOG_UID_MAPPING=yes
接下来,指示 gssd 服务从 /etc/gss/gsscred.conf 文件获取信息。
# pkill -HUP gssd
现在,您应该可以在 gssd 请求凭证映射时对其进行监视。如果针对 auth 系统功能将 syslog.conf 文件设置为 debug 严重级别,则可通过 syslogd 记录这些映射。