Kerberos常见问题处理

官方故障排除案例

https://web.mit.edu/kerberos/krb5-latest/doc/admin/troubleshoot.html

Sync Kerberos database步骤报错

解决方案

1)检查/etc/hosts的ip映射配置 2)检查是否重装因为脏数据未清理

cannot contact any kdc for requested realm while getting initial credentials

解决方案

root用户部署时需要将默认端口改到1024以下

Cannot set GSSAPI authentication names, aborting

解决方案

域缺少 kadmin/admin 或 kadmin/changepw principal

kdb5_util: Password mismatch while reading master key from keyboard

Kerberos常见问题处理 - 图1 错误原因

在初始化Kerberos数据库时需要输入密码,2次密码输入不一致就会导致该错误。

解决方案

重新执行"kdb5_util -r YINZHENGJIE.COM create -s"指令,输入2次相同的密码即可。

kdb5_util: Required parameters in kdc.conf missing while initializing kerberos admin interface

Kerberos常见问题处理 - 图2

错误原因

一般情况下出现在配置文件(kdc.conf)中的"supported_enctypes"的某个加密类型不可用。

解决方案

下面我针对"supported_enctypes"做了修改,大家可以做个对比。使用修改后的参数问题得到解决,之所以贴出来修改后的是为了提供一个参考。

修改前:
  supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
修改后:
 supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal

kadmin.local: Required parameters in kdc.conf missing while initializing kadmin.local interface

Kerberos常见问题处理 - 图3

错误原因

一般情况下出现在配置文件(kdc.conf)中的"supported_enctypes"的某个加密类型不可用。

解决方案

参考问题5

kadmin.local: Cannot open DB2 database '/yinzhengjie/softwares/kerberos/data/principal': No such file or directory while initializing kadmin.local interface

错误原因

报错很明显提示咱们找不到DB数据库相关信息。一般情况下是我们在安装Kerberos时没有做数据库初始化操作。

解决方案

  注意观察KDC配置文件("kdc.conf")的"database_name"属性。当我们对Kerberos数据库做了初始化操作时,对生成对应的文件哟~

  初始化Kerberos数据库的命令如下:
    kdb5_util -r YINZHENGJIE.COM create -s

(Error): WARNING! Cannot find dictionary file /yinzhengjie/softwares/kerberos/data/dict/words, continuing without one.

Kerberos常见问题处理 - 图4 错误原因

根据日志的报错信息可判断,是因为没有对应的文件(由kdc.conf配置文件的"dict_file"标签指定路径)导致的报错信息,但这并不影响您启动程序。

解决方案

创建响应的文件即可
[root@kdc.yinzhengjie.com ~]# mkdir -pv /yinzhengjie/softwares/kerberos/data/dict
mkdir: created directory ‘/yinzhengjie/softwares/kerberos/data/dict
[root@kdc.yinzhengjie.com ~]# 
[root@kdc.yinzhengjie.com ~]# vim /yinzhengjie/softwares/kerberos/data/dict/words
[root@kdc.yinzhengjie.com ~]# 
[root@kdc.yinzhengjie.com ~]# cat /yinzhengjie/softwares/kerberos/data/dict/words
123456

Couldn't open log file ${KERBEROS_HOME}/logs/kadmind.log: No such file or directory

Kerberos常见问题处理 - 图5 错误原因

一般是krb5.conf配置文件中的[logging]的"admin_server"标签对应的路径并不存在,建议写绝对路径,若写自定义的Linux变量可能不会被识别哟!

解决方案

 指定绝对路径即可,下面是我修改krb5.conf配置文件的过程。

修改前:
[logging]
 default = FILE:${KERBEROS_HOME}/logs/krb5libs.log
 kdc = FILE:${KERBEROS_HOME}/logs/krb5kdc.log
 admin_server = FILE:${KERBEROS_HOME}/logs/kadmind.log


修改后:
[logging]
 default = FILE:/yinzhengjie/softwares/kerberos/logs/krb5libs.log
 kdc = FILE:/yinzhengjie/softwares/kerberos/logs/krb5kdc.log
 admin_server = FILE:/yinzhengjie/softwares/kerberos/logs/kadmind.log

kdb5_util: Cannot open DB2 database '/yinzhengjie/softwares/kerberos/data/yinzhengjie-principal': File exists while creating database '/yinzhengjie/softwares/kerberos/data/yinzhengjie-principal'

Kerberos常见问题处理 - 图6

错误原因

数据库已经存在。   Kerberos的数据库初始化一次即可,无需初始化第二次,若你的管理员密码忘记了那就得重新初始化了,但这意味之前的数据必须全部删除。生产环境中要慎重啊!

解决方案

  方案一:     删除已存在的数据库文件,重新执行初始化操作,这意味着之前的所有数据全部丢失!生产环境要慎重哟,尽量避免不要这样干!   方案二:     放弃重新初始化操作,因为已经存在数据库文件了,直接使用现有数据库即可,除非你不得不重新初始化操作(比如忘记了KDC管理员的密码)!

kadmind: Cannot allocate memory while initializing network, aborting

Kerberos常见问题处理 - 图7