Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102130730
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-26 18:15:24

作者: Alf Wachsmann/黄永兵 译 出处:51CTO.com 
 
 
配置客户端

启用Kerberos认证的最容易的方法是使用可插拔认证模块(PAM),因为它使用的是Kerberos API调用,它工作需要配置文件/etc/krb5.conf,因此,第一步是从你的KDC上拷贝/etc/krb5.conf到各个客户端机器。

Kerberos不仅提供对用户的认证,也对计算机提供认证,防止你使用一个劫持的ip地址登陆到机器,要这样工作,每个计算机都需要它自己的Kerberos委托人和存储在文件(keytab文件)中的密钥(密码),计算机委托人构成如下:
host/.example.com@EXAMPLE.COM.

第一步是为每个客户端计算机创建一个新的委托人,下面的命令用client1作为计算机名当例子,用客户端计算机主机名替换client1,登陆到你的每个客户端计算机并执行:
% sudo /usr/local/sbin/kadmin
kadmin: addprinc -randkey host/

它给新委托人指定一个随机密码,然后,提取密钥放入keytab文件:
kadmin: ktadd

它创建了/etc/krb5.keytab文件,要获得对/etc/目录的写入许可,你需要用suho运行kadmin命令,简单创建一个委托人不需要这些特殊的权限,小心/etc/krb5.keytab所有权和文件许可,无论如何,它只能对root是可读的,否则,这个机器的安全就会受到威胁。

有几个为Kerberos 5准备的PAM可用,它们都叫pam_krb5。因为在MIT Kerberos 5 1.3版本中有一些API发生了变化,它们中的大部分都不再工作,你现在最好的选择是使用来自你的Linux发行版中的PAM模块,请查看前面的小节了解如何从源代码创建一个PAM模块。

现在,通过编辑文件/etc/pam.d/system-auth (在Red Hat系统上)来添加一个新的PAM模块到你的系统认证堆栈:

auth  required    /lib/security/$ISA/pam_env.so
auth  sufficient  /lib/security/$ISA/pam_unix.so likeauth nullok
auth  sufficient  /lib/security/$ISA/pam_krb5.so use_first_pass
auth  required    /lib/security/$ISA/pam_deny.so

account   required      /lib/security/$ISA/pam_unix.so
account   [default=bad success=ok user_unknown=ignore
↪service_err=ignore system_err=ignore]
↪/lib/security/$ISA/pam_krb5.so

password  required    /lib/security/$ISA/pam_cracklib.so
↪retry=3 type=
password  sufficient  /lib/security/$ISA/pam_unix.so
↪nullok use_authtok md5 shadow
password  sufficient  /lib/security/$ISA/pam_krb5.so
↪use_authtok
password  required    /lib/security/$ISA/pam_deny.so

session   required    /lib/security/$ISA/pam_limits.so
session   required    /lib/security/$ISA/pam_unix.so
session   optional    /lib/security/$ISA/pam_krb5.so

这些改变使每个程序都要使用system-auth PAM堆栈(它的配置文件在/etc/pam.d/目录下)完成Kerberos认证。

与非Linux客户端的内部操作

如果你已经安装了一个windows活动目录(AD)KDC,你可以将它作为你Linux/Unix机器的主KDC,假如这样,你可以跳过全部服务器的安装,只需要安装上面叙述的设置你的客户端,你的/etc/krb5.conf文件需要定义windows KDC而不是Unix KDC,关于如何创建和拷贝keytab文件的更多信息请参考资源部分列出的文章。

如果在你的工作组中有许多的windows机器,你也可以使用Unix KDC为它们提供服务,但是仅当你的windows客户端不属于windows AD域时才可以。

在你的Kerberos 5区域中使用Mac OS X客户端很容易,只需要在你的Mac上配置好你的Unix KDC的名字就可以了。再说一下,账号名必须匹配。

阅读(277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~