文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Kerberos统一认证实验配置

Kerberos统一认证实验配置

时间:2011-01-05  来源:lksj

0.准备工作     Kerberos是一种认证协议,以地狱守护者(三个头的狗)的名字命名,这个协议堪称完美,原理相当复杂,见http://blog.chinaunix.net/u/4940/showart_2374802.html,现在发展倒到第5版,其演变过程被MIT描述程Athena和Euripides的一段对话,http://biz.chinabyte.com/189/2038189.shtml,有兴趣可以看看,比较长,但是对理解Kerberos很有好处。     Kerberos的实验同样需要3台机器,分别扮演不同的角色:     a.192.168.0.48 kdc.example.com   Kerberos服务器和NIS服务器     b.192.168.0.49 server.example.com 应用服务器,如ssh,ftp,krb5-telnet等     c.192.168.0.50 client.example.com 客户机
ps.几台机器需要时间同步,所以最好是建一个ntp的服务器,时间相差5分钟以上,所有实验都做不出来。建NTP也就2分钟的事情。
1.配置NIS     概念是将kdc.example.com配置成NIS和Kerberos的服务器,NIS提供用户信息(User Infomation),Kerberos提供认证信息(Authentication),下面从NIS开始:          安装ypserv     #yum -y install ypserv     配置ypserv,增加NIS域,NISDOMAIN=ahau     #vim /etc/sysconfig/network     #nisdomainname ahau     固定ypserv的端口,在vim /etc/sysconfig/network添加参数YPSERV_ARGS=808     生成NIS库     #/usr/yp/ypinit -m     增加几个用户,但是不要密码,UID用大一点,防止跟客户机重复,更新NIS库     #useradd -u 6001 user1     #make -C /var/yp      ps.这里要注意NIS服务器的hosts配置,这个配置会传到客户机,如果有错,排错是很麻烦的,我就因为这个问题花了两个小时排错
2.配置KDC     很多包系统默认安装过了,这里只要安装krb5-server     #yum -y install krb5-server     修改krb5的配置文件/etc/krb5.conf     [logging]段是日志,可以不动     [libdefaults]是默认配置,其中default_realm指出了默认的realm,即认证的范围,一般是全大写字母     default_realm = KDC.EXAMPLE.COM     [realms]段是范围的配置,参数最好写IP地址,方便以后更改     [realms]       KDC.EXAMPLE.COM = {          kdc = 192.168.0.48:88          admin_server = 192.168.0.48:749     }     [domain_realm]域和realm的关系,即哪些机器可以在哪个realm里认证     .example.com = KDC.EXAMPLE.COM  #所有example.com域的用户和机器都可以在KDC.EXAMPLE.COM上认证     [appdefaults]段指出pam的一些参数,如票的存活时间等等。     加一条 validate = true ,目的是让登录程序确认KDC的合法性          初始化KDC的数据库,-s表示通过kadmin登录本机不需要密码     #kdb5_util create -r KDC.EXAMPLE.COM -s           修改kdc.conf,指定加密算法     #vim /var/kerberos/krb5kdc/kdc.conf     [realms]段改成KDC.EXAMPLE.COM,取消master_key_type的注释,Kerveros v5采用3DES的算法,比v4的DES要安全一些          修改/var/kerberos/krb5kdc/kadm5.acl,此文件为kadmin的访问控制文件     语法是     principal permissions [target-principal]     改成如下形式,即所有admin组拥有所有权限     */[email protected] *         登录KDC,添加管理员和一般用户的principal     #kadmin.local     kadmin.local: addprinc root/admin     kadmin.local: addprinc user1        ps.addprinc会要求输入密码,root/admin的密码一定不能泄漏,否则就完了,user1的密码就是指登录密码     查看,删除已有的principal的命令:     kadmin.local:listprincs     kadmin.local:getprinc user1     kadmin.local:delprinc user1        导出kadmin服务的keytab文件,退出kadmin     kadmin.local:ktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/admin     kadmin.local:ktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/changepw
ps.有的资料上说kadmin会自动生成keytab文件,我试了一下不行,可能版本问题吧          修正前面的几个文件的SELINUX设置     #restorecon -R -V /var/kerberos/krb5kdc/     #restorecon -R -V /var/log/     #restorecon -R -V /etc/krb5.conf
    查看keytab文件内容     #ktutil     ktutil:rkt /var/kerberos/krb5kdc/kadm5.keytab     ktutil:list
    启动服务     #service krb5kdc restart     #service kadmin restart
    登录到server.example.com上,复制kdc.example.com的/etc/krb5.conf文件过来,省得再配了     server#scp [email protected]:/etc/krb5.conf /etc/krb5.conf     server#restorecon -R -v /etc/krb5.conf
    运行kadmin,输入密码后即可远程登录到KDC上,可以对其进行管理
3.配置服务器     我们希望把server.example.com做成应用服务器,这里以sshd、gssftp、krb5-telnet为例。     先配置这几个服务,sshd默认就能用,gssftp和krb5-telnet都是xinetd管理的服务,修改/etc/xinetd.d/的相关配置文件就行,如果要telnet加密,同时打开ekrb5-telnet服务就行,建议打开。     配置服务器为NIS的客户端,并且使用Kerberos认证     server#authconfig-tui ,修改相应的NIS信息就行          在KDC增加服务的principal,并且导出生成server自己的钥匙     server#kadmin     kadmin:addprinc -randkey host/server.example.com  #krb5-telnet和ssh的principal都是host     kadmin:addprinc -randkey ftp/server.example.com #gssftp 的principal是ftp          导出到本地     kadmin:ktadd -k /etc/krb5.keytab host/server.example.com     kadmin:ktadd -k /etc/krb5.keytab ftp/server.example.com        检查防火墙和selinux
    因为要做双向验证,所以我们在kdc.example.com上也把sshd服务注册一下,登录到kdc.example.com     #kadmin.local     kadmin.local:addprinc -randkey host/server.example.com     kadmin.local:ktadd -k /etc/krb5.conf host/server.example.com
    检查防火墙和selinux       重启跟kdc相关的服务
4.客户机测试     先将客户机加入NIS域,并使用Kerberos验证     然后以user1登录系统,密码为KDC中addprinc时输入的对应密码,注意这里不能用root直接su到user1,因为root是不验证密码的,这样会导致得不到TGT票,正常登录的话说明验证没有问题     此时该用户已经得到了TGT的授权票,可以用klist查看用户得到的票的信息     client#klist     使用ssh登录server.example.com,不需要密码就能登录     使用ftp登录server.example.com,不需要密码也能登录     使用telnet命令 telnet -x server.example.com -k KDC.EXAMPLE.COM登录server.example.com,同样不需要密码就能登录
    再此用klist查看,该用户已经得到了多张用于访问服务的票,默认的有效时间是10个小时。
ps.ssh登录到server.example.com以后,再ssh回client.example.com是需要密码的,如果要取消密码,可以修改client.example.com上的ssh配置,增加GSSAPIDelegateCredentials yes 的参数,让ssh能够传递认证信息

以上是配置Kerberos统一认证的过程,全部都使用RHEL5.4,还有一些夸域的认证没有写,有空再说吧,强烈推荐大家看看那个对话,非常经典。     
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载