Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22054
  • 博文数量: 5
  • 博客积分: 235
  • 博客等级: 二等列兵
  • 技术积分: 65
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-30 20:06
文章分类

全部博文(5)

文章存档

2012年(2)

2011年(2)

2010年(1)

我的朋友

分类: 网络与安全

2012-09-13 16:44:19

i. 环境

          |KDC|-------webserver       
           
|             /        
     
           
|           /
      
            
Workstation
 

Hostname:

KDC (windows 2003): sz-tc211.newexample.int

Workstation (windows xp): sz-tc-backup14.newexample.int

Webserver (CentOS 5.5, apache2.2): webserver.newexample.int

 

注:须安装apachekerberos module: mod_auth_kerb

 

ii. 配置

如何在windows server上安装及配置AD/domain controllerdns server,在这里不做描述,有很多现成的教程。注意要将workstationdns server指向配置好的AD

这里主要描述如何配置Centos,其他linux发行版类似。

1. 安装包(均可使用yum/rpm安装),这里的kerberos用的是配置略有区别,这里没有涉及。

 必选安装包:

     krb5-libs

     krb5-workstation

 可选: 

     krb5-devel

     krb5-auth-dialog

2. 基本配置

a) 确保kdcwebserverworkstation的时间是一致的,kerberos要求时差不能超过5分钟。

b) 配置webserver/etc/krb5.conf来使用realm: newexample.int.例如一个最简单的krb5.conf:

点击(此处)折叠或打开

  1. [logging]
  2.  default = FILE:/var/log/krb5libs.log
  3.  kdc = FILE:/var/log/krb5kdc.log
  4.  admin_server = FILE:/var/log/kadmind.log

  5. [libdefaults]
  6.  default_realm = NEWEXAMPLE.INT

  7. [realms]
  8.  EXAMPLE.INT = {
  9.   kdc = sz-tc211.newexample.int
  10.   admin_server = sz-tc211.newexample.int
  11. }

  12. [domain_realm]
  13.  webserver.newexample.int = NEWEXAMPLE.INT

注意其中的大小写,realm字段用大写,且与ADdns域名一致。kdcadmin_server字段均指向AD

3. 验证centos配置是否成功(注意domain要大写):

点击(此处)折叠或打开

  1. [root@webserver conf.d]# kinit client2@NEWEXAMPLE.INT
  2. Password for client2@NEWEXAMPLE.INT:

点击(此处)折叠或打开

  1. [root@webserver conf.d]# klist
  2. Ticket cache: FILE:/tmp/krb5cc_0
  3. Default principal: client2@NEWEXAMPLE.INT
  4. Valid starting Expires Service principal
  5. 09/13/12 14:59:34 09/14/12 00:57:10 krbtgt/NEWEXAMPLE.INT@NEWEXAMPLE.INT
  6. renew until 09/14/12 14:59:34
  7. Kerberos 4 ticket cache: /tmp/tkt0
  8. klist: You have no tickets cached

4. AD上为webserver(准确地说是为http service)创建principal

a) 创建一个user,本例中使用dummy这个用户。

b) dummy用户映射到http serviceprincipal

点击(此处)折叠或打开

  1. C:\> ktpass -princ HTTP/webserver.newexample.int@newexample.int -mapuser dummy@NEWEXAMPLE.INT -pass Password1 -out c:\temp\mykeytab

c) mykeytab文件拷贝到webserver下,本例放在了/etc/krb5.keytab,这是kerberos的默认keytab文件,放到任意目录即可,要保证有可读权限,在后面提到的apache配置文件中要指定该keytab的路径。

d) 验证AD发送的tickets是否正确

点击(此处)折叠或打开

  1. [root@webserver ~]# kvno HTTP/webserver.newexample.int@NEWEXAMPLE.INT
  2. HTTP/webserver.newexample.int@NEWEXAMPLE.INT: kvno = 4

点击(此处)折叠或打开

  1. [root@webserver ~]# klist -e
  2. Ticket cache: FILE:/tmp/krb5cc_0
  3. Default principal: client2@NEWEXAMPLE.INT

  4. Valid starting Expires Service principal
  5. 09/13/12 14:59:34 09/14/12 00:57:10 krbtgt/NEWEXAMPLE.INT@NEWEXAMPLE.INT
  6. renew until 09/14/12 14:59:34, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5
  7. 09/13/12 15:31:48 09/14/12 00:57:10 HTTP/webserver.newexample.int@NEWEXAMPLE.INT
  8. renew until 09/14/12 14:59:34, Etype (skey, tkt): DES cbc mode with CRC-32, DES cbc mode with RSA-MD5


  9. Kerberos 4 ticket cache: /tmp/tkt0
  10. klist: You have no tickets cached 
     将以上两个输出信息再与keytab中的ticket比较,保证kvno,ticket必须完全一样

点击(此处)折叠或打开

  1. [root@webserver ~]# klist -e -k -t /etc/krb5.keytab
  2. Keytab name: FILE:/etc/krb5.keytab
  3. KVNO Timestamp Principal
  4. ---- ----------------- --------------------------------------------------------
  5. 4 01/01/70 08:00:00 HTTP/webserver.newexample.int@NEWEXAMPLE.INT (DES cbc mode with RSA-MD5)

5. 确认mod_auth_kerb安装后,配置apache的配置文件。如果是用rpm安装的,会在/etc/httpd/conf.d/下生成一个auth_kerb.conf文件。

点击(此处)折叠或打开

  1. LoadModule auth_kerb_module modules/mod_auth_kerb.so

  2. <Directory />
  3.  AuthType Kerberos
  4.  AuthName "Kerberos Login"
  5.  KrbMethodNegotiate On
  6.  KrbMethodK5Passwd Off
  7.  KrbAuthRealms NEWEXAMPLE.INT
  8.  Krb5KeyTab /etc/krb5.keytab
  9.  require valid-user
  10. </Directory>

这里也可以不用Directory,用Location

6. 配置workstation中的IE (其他浏览器一般也支持,需要另作配置)

a) 先用newexmaple.int中的一个用户登录workstation

b) Internet选项中启用集成windows验证(默认是开启的)

c) 通过IE访问 注意这里要用dns名称,不能用ip,因为这里要跟kpass中使用的一致。


iii. 参考

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