Kerberos安装和配置(3)

你可能需要创建一个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-config

auth-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方面是一个非常好的参考。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b735001d947f44c2335c3b4deb38bd84.html