如何更新Kerberos stash文件的加密类型并调整对应配置以避免系统故障?
如何更新Kerberos stash文件的加密类型并调整对应配置以避免系统故障?
别急,我来一步步帮你解决这个问题——更新Kerberos stash文件的加密类型其实并不复杂,关键是要做好备份和配置调整,避免服务中断。
第一步:先备份现有stash文件(重中之重!)
在做任何修改之前,一定要先备份当前的stash文件,防止操作失误导致KDC无法启动:
cp /etc/krb5kdc/stash /etc/krb5kdc/stash.backup
把备份文件存到安全的地方,万一出问题可以快速恢复。
第二步:生成使用非废弃加密类型的新stash文件
我们可以用kdb5_util工具重新生成stash文件,指定现代的、非废弃的加密类型(比如aes256-cts-hmac-sha1-96或aes128-cts-hmac-sha1-96,这两个是目前Kerberos推荐的主流选项)。
执行以下命令(根据你的需求选择加密类型,这里以aes256为例):
kdb5_util stash -k /etc/krb5kdc/stash -e aes256-cts-hmac-sha1-96
-k参数指定新stash文件的路径(覆盖原文件,所以之前的备份很重要)-e参数指定要使用的加密类型,如果想同时支持多种加密类型,可以用冒号分隔,比如aes256-cts-hmac-sha1-96:aes128-cts-hmac-sha1-96
执行命令时会要求你输入KDC的主密码,和之前设置的一致即可。
第三步:更新Kerberos配置文件
生成新的stash文件后,需要调整Kerberos的配置,让KDC和所有客户端/服务端都使用新的加密类型,避免出现兼容性问题。
修改krb5.conf(全局配置)
找到[libdefaults]段,更新加密类型相关配置:
[libdefaults] default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
这些配置分别指定了默认的票据授予服务(TGS)加密类型、默认的票据(TGT)加密类型,以及所有允许使用的加密类型。
修改kdc.conf(KDC专属配置)
找到[kdcdefaults]段,设置KDC使用的加密类型:
[kdcdefaults] kdc_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
然后在[realms]段对应的你的Kerberos域下,设置主密钥类型:
[realms] YOUR_REALM.COM = { master_key_type = aes256-cts-hmac-sha1-96 # 保留其他原有配置,比如admin_server、kdc等 }
把YOUR_REALM.COM替换成你实际的Kerberos域名(比如EXAMPLE.COM)。
第四步:重启KDC服务并验证修改
修改完配置后,重启Kerberos KDC服务让配置生效:
# 不同系统命令可能略有不同 systemctl restart krb5kdc # 或者 service krb5kdc restart
接下来验证修改是否成功:
- 查看KDC日志,确认不再出现
des3-cbc-sha1相关的废弃警告 - 使用
kadmin.local登录,检查KDC主密钥的类型:
然后执行:kadmin.local
查看输出中的getprinc krbtgt/YOUR_REALM.COMKey: vno X, aes256-cts-hmac-sha1-96条目,确认新的加密类型已经生效。
额外注意事项
- 确保你的所有Kerberos客户端和服务端都支持新的加密类型,如果有老旧系统暂时无法升级,你可以在
permitted_enctypes里暂时保留des3-cbc-sha1,但建议尽快完成全系统迁移,避免后续OpenSSL升级后出现故障。 - 如果修改后KDC无法启动,立即用之前备份的
stash.backup替换原文件,恢复到修改前的状态,再排查问题。
备注:内容来源于stack exchange,提问作者npr_se
相关产品推荐
相关产品推荐

