Ubuntu

kadmind 錯誤 - krb5_recvauth: 在 HDBGET 密鑰表類型中不支持 start_seq_get

  • July 7, 2015

我正在嘗試將帶有 OpenLDAP 後端的 heimdal KDC 從 Debian 5.x 伺服器(heimdal 1.2.dfsg.1-2.1)遷移到 Ubuntu 14.04 伺服器(heimdal 1.6~git20131207+dfsg-1ubuntu1.1),我在 14.04 系統上遇到 kadmind 問題。

某些 kerberos 功能執行良好——我可以執行 kinit、獲取票證並成功使用 GSSAPI 身份驗證和 sshd。我什至可以成功地使用帶有 -l 選項的 kadmin。但是,當我省略 -l 選項並嘗試與 kadmind 對話時,我會收到錯誤消息。例如,如果我將 kadmin/admin 密鑰表導出到文件 /tmp/kadmin.keytab 並執行:

kadmin -p kadmin/admin -K /tmp/kadmin.keytab get kadmin/admin

我得到錯誤:

kadmind[38823]: krb5_recvauth: start_seq_get is not supported in the HDBGET keytab type

這個完全相同的命令,帶有完全相同的 kadmin.keytab 文件,在 debian 5.x 系統上執行良好。

我收到上述錯誤的情況是我將 /var/lib/heimdal-kdc/heimdal.db 文件從 Debian 5.x 伺服器複製到 Ubuntu 14.04 伺服器,或者 heimdal.db 文件是不存在的。如果我使用與 heimdal 軟體包安裝一起創建的預設 heimdal.db 文件,我會看到來自 kadmind 的不同錯誤:

kadmind[38853]: krb5_recvauth: Decrypt integrity check failed for checksum type hmac-sha1-96-aes256, key type aes256-cts-hmac-sha1-96

我不明白為什麼 heimdal.db 的內容很重要,因為我使用的是 OpenLDAP 後端。當主體位於 LDAP 目錄中時,以某種方式查詢靜態 db 文件似乎很奇怪。我已經驗證我已經將 LDAP 目錄原封不動地從 Debian 5.x 系統複製到了 Ubuntu 14.04 系統,並且沒有使用主密鑰(沒有 mkey_file 指令,即使我複制了預設的 m-key最初在 Debian 5.x 上自動生成的文件沒有任何區別)。不知道我還能做些什麼來確保配置盡可能相似。

我還嘗試將更新的 heimdal 1.6rc2 包向後移植到 14.04,但得到了相同的錯誤。我嘗試使用 gdb 跟踪 kadmind 的行為,但沒有發現任何明顯的問題。

有誰知道這裡可能會發生什麼?下面是 /etc/krb5.conf 和 /etc/heimdal-kdc/kdc.conf 文件來說明配置:


# /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
forwardable = true
proxiable = true
renewable = true
scan_interfaces = true

[realms]
EXAMPLE.COM = {
 admin_server = localhost
 kdc = localhost
}

[domain_realm]
example.com = EXAMPLE.COM
.example.com = EXAMPLE.COM

[logging]
default = SYSLOG:INFO

# /etc/heimdal-kdc/kdc.conf
[logging]
kdc = FILE:/var/log/heimdal-kdc.log
kdc = SYSLOG:INFO

[kdc]
database = {
 dbname = ldap:dc=example,dc=com
 hdb-ldap-create-base = ou=Kerberos,dc=example,dc=com
 acl_file = /etc/heimdal-kdc/kadmind.acl
}

看起來 1.2 和 1.6 之間的各種程式碼更改導致了我看到的問題。為了解決這個問題,我做了以下事情:

  1. 將 kadmin/admin 主體添加到 /etc/krb5.keytab
  2. 附加--keytab=/etc/krb5.keytab到 /etc/inetd.conf 中的 kadmind 參數

這告訴 kadmind 在 /etc/krb5.keytab(而不是“HDBGET:”)中顯式查找它用來向 kdc 進行身份驗證的 kadmin/admin 主體。

有關更多資訊,請參閱https://github.com/heimdal/heimdal/issues/133

引用自:https://serverfault.com/questions/703425