为什么80%的码农都做不了架构师?>>>
客户端配置
kerberos客户端配置,理论上很简单。安装客户端程序,然后拿到正确的kerberos配置信息,理论上就可以使用kerberos来验证身份了。下面以red hat enterprise server 6.5为例,介绍一下kerberos客户端配置。
-
观察当前配置。
在/etc/下发现了空的krb5.conf文件,怀疑已经预装kerberos客户端。
执行klist,发现可以执行,证明客户端已经装好。
-
获取krb5.conf文件
从一台kerberos服务器获取配置文件
scp root@kerberos-master:/etc/krb5.conf /etc/krb5.conf
-
执行kinit
执行kinit来验证身份,结果提示错误。
#kinit mac@MCIPT.COM kinit: Included profile directory could not be read while initializing Kerberos 5 library
-
错误分析
$ strace kinit ... stat("/etc/krb5.conf.d/", 0x7ffd83a26fc0) = -1 ENOENT (No such file or directory) close(3) = 0 write(2, "kinit: Included profile director"..., 52kinit: Included profile directory could not be read ) = 52 write(2, "while initializing Kerberos 5 li"..., 37while initializing Kerberos 5 library) = 37 write(2, "\n", 1 ) = 1 exit_group(1) = ? +++ exited with 1 +++
原来是/etc/krb5.conf.d目录没有建立。建立之后,故障排除
创建keytab文件
Keytab文件可用于应用帐号免密获取ticket。因为一般情况下,应用无法通过交互的方式去更新kerberos ticket。采用keytab,一条命令完成更新,是常规做法。接下来就介绍一下,如何制作keytab文件。
-
Windows方案。
如果采用AD作为KDC,那么就可以在AD端,通过执行ktpass命令,来生成keytab文件。 在active directory 端,打开dos 窗口,执行:
#1.创建用户 mac@MCIPT,对应密码为 real_password ktpass /princ mac@MCIPT.COM /pass real_password /ptype KRB5_NT_PRINCIPAL /out mac.keytab #KDC中,对应的命令是 #kadmin.local -q "addprinc -randkey mac@MCIPT.COM" #kadmin.local -q "xst -k /etc/security/keytabs/mac.keytab mac@MCIPT.COM"
这里的real_password,一定是mac这个用户的真实密码。随便填,使用kinit的时候就会提示 preauthentication 失败。
-
Linux方案
通过ktutil命令,来生成一个所需的keytab文件。
# ktutil ktutil:add_entry -password -p mac@MCIPT.COM -k 1 -e arcfour-hmac-md5 ktutil:wkt mac.keytab
-
验证:
kinit mac@MCIPT.COM -k -t mac.keytab