你可能需要创建一个cron任务,来周期性地跟新Secondary KDC数据库。比如,下面的命令将每个小时推送一次数据库(请注意,长行已被拆分,以适应本文档的格式):
# m h dom mon dow command 0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com
回到Secondary KDC,创建一个stash用来保存Kerberos master key:
sudo kdb5_util stash
最后,在 Secondary KDC开启krb5-kdc守护进程:
sudo service krb5-kdc start现在Secondary KDC应该已经可以在这个Realm签发票据了。你可以在Primary KDC上停止krb5-kdc进程,并使用kinit请求票据来测试。如果一切运行正常的话,你可以从Secondary KDC请求到票据。否则,查看下Secondary KDC上的/var/log/syslog and /var/log/auth.log吧。
Kerberos Linux Client:本节主要包含配置一个Linux系统成为Kerberos客户端。一旦用户成功登陆系统,他将有权限访问任何被Kerberos认证过后的服务。
安装为了能够在Kerberos Realm中被认证,需要krb5-user和libpam-krb5两个包。其他的几个包不是必要的但是可以让生态更加友好。在命令提示符下输入以下命令来安装包:
sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-configauth-client-config包使得多个来源认证的PAM配置更简单;libpam-ccreds包将会保存你登录的认证证书,以防KDC挂掉。这个包在笔记本使用公司网络进行Kerberos认证,却需要被网络接受时,也很有用。
配置配置客户端,在终端输入:
sudo dpkg-reconfigure krb5-config你将被提示输入Kerberos Realm的名字。另外,如果你没有用Kerberos SRV记录设置DNS,菜单会提示你输入KDC和Realm Administration服务器的主机名。
dpkg-reconfigure为你的Realm在/etc/krb5.conf文件中填入了一些内容。这些内容应该与下列内容类似:
[libdefaults] default_realm = EXAMPLE.COM ... [realms] EXAMPLE.COM = { kdc = 192.168.0.1 admin_server = 192.168.0.1 }tips:如果你设置的网络认证用户都和“安装”的建议一样从500开始,然后,你就可以告诉PAM只尝试验证UID>5000的Kerberos用户:
# Kerberos should only be applied to ldap/kerberos users, not local ones. for i in common-auth common-session common-account common-password; do sudo sed -i -r \ -e 's/pam_krb5.so minimum_uid=1000/pam_krb5.so minimum_uid=5000/' \ /etc/pam.d/$i done这将避免在一个本地用户修改密码时被要求输入(不存在的)Kerberos密码。
你可以用kinit功能请求一个票据来测试你的配置,比如:
kinit steve@EXAMPLE.COM Password for steve@EXAMPLE.COM:当票据被授权,你可以用klist查看票据的详情:
klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: steve@EXAMPLE.COM Valid starting Expires Service principal 07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 07/25/08 05:18:57 Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cached接着,使用auth-client-config来配置libpam-krb5模块,来在登录时请求票据:
sudo auth-client-config -a -p kerberos_example现在你应该在成功登录认证后获得了一个票据。
资源查看更多Kerberos的MIT版本信息,请访问MIT Kerberos官网。
Ubuntu Wiki Kerberos有更多的细节。
O’Reilly的Kerberos: The Definitive Guide在配置Kerberos方面是一个非常好的参考。