KDC服务器,Ktelnetd,Krlogind,Krsh服务器,最后就可以使用krb5-workstation提供的telnet,rlogin,rsh来登录这些服务了。
kerberos安装可使用yum install krb5*或使用rpm 命令安装
默认安装目录为/var/kerberos/krb5kdc
需要配置的文件/etc/krb5.conf 以及 安装目录下的文件,如/var/kerberos/krb5kdc/kdc.conf
1.生成kerberos的本地数据库
kdb5_util create-r EXAMPLE.COM -s
2. 生成账号
kerberos用principal(kerberos术语)来表示realm下的一个帐户,表示为primary/instance@realm,举个例子就是username/9.181.92.90@EXAMPLE.COM,这里假设9.181.92.90是你机器的ip地址,又或者是 username/orange@EXAMPLE.COM,这里orange是你的hostname
在数据库中加入管理员帐户:
kadmin.local
kadmin.local: addprinc admin/admin@EXAMPLE.COM
在数据库中加入用户的帐号:
kadmin.local: addprinc username/9.181.92.90@EXAMPLE.COM
在数据库中加入Ktelnetd,Krlogind,Krshd公用的帐号:
kadmin.local: addprinc -randkey host/9.181.92.90@EXAMPLE.COM
其中-randkey是随机密码的意思
kadmin.local中可能使用到的命令
addprinc
delprinc
listprincs
xst -k xxx.keytab xxx/xxx@xxxx 生成用户xxx/xxx@xxxx的keytab文件,可以直接使用这个文件进行kinit命令 kinit -kt xxx.keytab xxx/xxx@xxx
其中xxx.keytab如不配置路径,那么生成在当前目录下,kinit的时候需要加路径
keytab文件需要使用 klist -ekt xxx.keytab 查看
3、检查/var/kerberos/krb5kdc/kadm5.keytab是否有下列语句:
*/admin@EXAMPLE.COM *
若没有,那么就添上。
4、修改/etc/krb5.conf文件,修改所有的realm为EXAMPLE.COM,并且加入下列句子
kdc = 9.181.92.90:88
admin_server = 9.181.92.90:749
其中88和749是kdc默认的端口,ip也可替换为hosts中的hostname
5、在/etc/krb.conf中加入下列语句:
EXAMPLE.COM
EXAMPLE.COM 9.181.92.90:88
EXAMPLE.COM 9.181.92.90:749 admin server
6、启动kdc服务器和Ktelnetd,Krlogind,Krshd
/etc/init.d/krb5kdc restart
chkconfig klogin on
chkconfig kshell on
chkconfig eklogin on
chkconfig krb5-telnet on
/etc/init.d/xinetd restart
也可使用service krb5kdc start
service kadmin start 等
7、制作本地缓存
将username/9.181.92.90@EXAMPLE.COM的credentials(kerberos术语)取到本地做为cache,这样以后就可以不用重复输入password了。
kinit username/9.181.92.90
如果顺利的话,在/tmp下面会生成文件krb5*;这步如果不通,那么就必须检查以上步骤是否有漏。
可以用klist命令来查看credential。
8、导出用户密匙
export host/9.181.92.90@EXAMPLE.COM的key到/etc/krb5.keytab,
Ktelnetd、Krlogind和Krshd需要/etc/krb5.keytab来验证username/9.181.92.90的身份。
kadmin.local: ktadd -k /etc/krb5.keytab host/9.181.92.90
和上面说到的xst -k 的道理是相同的
9、修改~/.k5login文件
在其中加入username/9.181.92.90@EXAMPLE.COM,表示允许username/9.181.92.90@EXAMPLE.COM登录该帐户
cat username/9.181.92.90@EXAMPLE.COM>>~/.k5login
实际可以不做修改
10、测试kerberos客户端
krsh 9.181.92.90 -k EXAMPLE.COM ls
krlogin 9.181.92.90 -k EXAMPLE.COM
rlogin 9.181.92.90 -k EXAMPLE.COM
rsh 9.181.92.90 -k EXAMPLE.COM
telnet -x 9.181.92.90 -k EXAMPLE.COM
(未测试)