分享

Kerberos系列1:Windows Kerberos客户端配置并访问CDH详细教程

本帖最后由 sstutu 于 2018-9-6 16:11 编辑

问题导读

1.windows如何找到对应的Kerberos安装?
2.在Window下如何使用kinit测试?
3.FireFox浏览器访问CDH web,该如何配置?

关注最新经典文章,欢迎关注公众号


1.概述

本文档描述Windows Server2008 R2(windows的内核版本是6.1,与windows 7相同)下安装Kerberos Client及FireFox下HTTP访问HDFS、Yarn、Hive、HBase等Hadoop服务的Web UI(如Namenode的50070,Yarn的8088)的过程。安装文档主要分为以下几步:

1.在Windows Server2008 R2 64位上安装Kerberos Client。

2.在Windows下使用kinit测试。

3.通过keytab在Windows下进行kinit操作。

4.配置FireFox。

5.验证服务是否正常访问。

这篇文档将着重介绍Winodws Server R2下安装及使用Kerberos,并基于以下假设:

1.CDH环境已搭建并正常运行

2.HDFS、Yarn、HBase、Hive等组件已安装部署

3.集群已完成Kerberos的配置,并正常使用

以下是对本次测试环境,但不是本操作手册的硬限制:

1.操作系统:Redhat7.2

2.CM版本:CM5.11.1

3.CDH版本:CDH5.11.1

4.采用ec2-user对集群进行部署


2. Kerberos安装

2.1 Kerberos安装包准备

在Kerberos官网下载Kerberos安装包(http://web.mit.edu/kerberos/dist/),如下截图:
1.png


根据自己Windows操作系统下载不同的Client,32位或者64位。


2.2安装Kerberos

1.将下载下来的客户端双击打开

1.png

2.点击下一步,如下图所示
1.png


3.选择“同意”,点击下一步
1.png


4.选择“Typical”进入下一步
1.png


5.点击“install”进行安装
1.png


点击“finish”安装完成

6.配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件

1.png

将KDC Server服务器上/ect/krb5.conf文件中的部分内容,拷贝到krb5.ini文件中
1.png


注意:此处将标注部分拷贝至krb5.ini文件中,否则会导致MIT Kerberos无法正常启动,如果直接将krb5.conf文件更名为ini文件并替换krb5.ini文件会出现文件格式问题导致MIT Kerberos无法正常启动。


7.配置完成后,启动MIT Kerberos客户端,如下图所示:
1.png


3 在Window下使用kinit测试

3.1 使用密码登录Kerberos

1.KDC Server上通过admin创建一个用户

  1. [ec2-user@ip-172-31-18-97  keytab]$ sudo kadmin.local
  2. Authenticating as principal  root/admin@CLOUDERA.COM with password.
  3. kadmin.local:   addprinc [email]test@CLOUDERA.COM[/email]
  4. WARNING: no policy specified for [email]test@CLOUDERA.COM[/email];  defaulting to no policy
  5. Enter password for principal  "test@CLOUDERA.COM":
  6. Re-enter password for principal  "test@CLOUDERA.COM":
  7. Principal "test@CLOUDERA.COM" created.
复制代码

1.png

测试正常
1.png


2.在Winodw端,通过MIT Kerberos客户Get Ticket
1.png


在如下列表中可以看到获取到的Ticket
1.png


3.销毁获取到的Ticket

选中列表中需要销毁的Ticket,点击Destroy Ticket

1.png

1.png

4.命令行下初始化
1.png


在客户端可以看到初始化成功的Ticket
1.png


5.命令行下kdestroy
1.png

客户端数据已destroy
1.png


3.2 使用Keytab文件登录Kerberos

1.在KDC Server创建一个ketab文件,使用上一步创建的test@CLOUDERA.COM

  1. [ec2-user@ip-172-31-18-97  keytab]$ sudo kadmin.local
  2. Authenticating  as principal root/admin@CLOUDERA.COM with password.
  3. kadmin.local:  xst -norandkey -k test.keytab [email]test@CLOUDERA.COM[/email]
  4. kadmin.local:  Principal test.keytab does not exist.
  5. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type  aes256-cts-hmac-sha1-96 added to keytab WRFILE:-k.
  6. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type  aes128-cts-hmac-sha1-96 added to keytab WRFILE:-k.
  7. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type des3-cbc-sha1  added to keytab WRFILE:-k.
  8. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type arcfour-hmac  added to keytab WRFILE:-k.
  9. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type  camellia256-cts-cmac added to keytab WRFILE:-k.
  10. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type  camellia128-cts-cmac added to keytab WRFILE:-k.
  11. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type des-hmac-sha1  added to keytab WRFILE:-k.
  12. Entry  for principal [email]test@CLOUDERA.COM[/email] with kvno 1, encryption type des-cbc-md5  added to keytab WRFILE:-k.
复制代码

注意:在生成keytab文件时需要加参数”-norandkey”否则会导致,直接使用kinit test@CLOUDERA.com初始化时会提示密码错误。
生成成功
1.png


注意:在非root用户下需要将生成的keytab文件,权限设置到644以上,否则会初始化失败或者使用sudo权限初始化
1.png


2.将生成的test.keytab文件拷贝到Windows Server上,在CMD命令行进行初始化
1.png

初始化成功,在MIT Kerberos客户端显示
1.png


4 FireFox浏览器访问

4.1 FireFox浏览器配置

1.打开FireFox浏览器,在地址栏输入about:config

1.png

2.修改配置参数
  1. network.negotiate-auth.trusted-uris = ip-172-31-18-97.ap-southeast-1.compute.internal,ip-172-31-19-209.ap-southeast-1.compute.internal
  2. network.auth.use-sspi = false
复制代码


注意:network.negotiate-auth.trusted-uris此参数主要配置需要访问服务的hostname,如果需要访问多个host则以“,”分割。


4.2 测试访问HDFS服务

1.访问HDFS的50070端口

1.png


由于此时未将hdfs的ticket初始化所以不能正常访问,提示输入principal和密码

2.在CM节点的/var/run/cloudera-scm-agent目录下选择最新的xxx-hdfs-NAMENODE目录下的hdfs.keytab文件
1.png


3.测试hdfs.keytab是否正常

通过kadmin.loca命令列出所有hdfs的身份
  1. [root@ip-172-31-18-97 577-hdfs-NAMENODE]#  kadmin.local
  2. Authenticating as principal  hdfs/admin@CLOUDERA.COM with password.
  3. kadmin.local:   listprincs hdfs*
  4. hdfs/ip-172-31-18-97.ap-southeast-1.compute.internal@CLOUDERA.COM
  5. hdfs/ip-172-31-19-209.ap-southeast-1.compute.internal@CLOUDERA.COM
  6. hdfs/ip-172-31-28-67.ap-southeast-1.compute.internal@CLOUDERA.COM
  7. hdfs/ip-172-31-30-214.ap-southeast-1.compute.internal@CLOUDERA.COM
复制代码

1.png
  1. [root@ip-172-31-18-97 577-hdfs-NAMENODE]# kinit  -kt hdfs.keytab  hdfs/ip-172-31-18-97.ap-southeast-1.compute.internal@CLOUDERA.COM
  2. [root@ip-172-31-18-97 577-hdfs-NAMENODE]# klist
  3. Ticket cache: FILE:/tmp/krb5cc_0
  4. Default principal: hdfs/ip-172-31-18-97.ap-southeast-1.compute.internal@CLOUDERA.COM
  5. Valid starting       Expires              Service principal
  6. 07/26/2017 11:23:08  07/27/2017 11:23:08  krbtgt/CLOUDERA.COM@CLOUDERA.COM
  7.          renew until 07/31/2017 11:23:08
复制代码

1.png

注意:可以使用listprincs列出的hdfs身份进行初始化

4.将hdfs.keytab文件拷贝到Windows机器上,通过CMD命令进行初始化

1.png

5.再次通过FireFox浏览器访问HDFS服务,正常访问
1.png


6.访问Yarn资源管理服务是否能正常
1.png

查看作业详情时无法正常访问,由于该hostname信息未添加到FireFox的network.negotiate-auth.trusted-uris配置中
1.png

将该hostname添加到配置中
1.png


再次访问成功
1.png


5 keytab合并及使用

1.将需要合并的keytab文件统一的放在同一个目录下

1.png

2.使用ktutil命令合并keytab文件,操作如下
  1. [root@ip-172-31-18-97 keytab]# ktutil
  2. ktutil:   rkt hbase.keytab
  3. ktutil:   rkt hive.keytab
  4. ktutil:   rkt hdfs.keytab
  5. ktutil:   rkt yarn.keytab
  6. ktutil:   wkt test-new.keytab
  7. ktutil:
复制代码



在当前目录下生成test-new.keytab文件
1.png


注意:由于生成的keytab文件权限默认为600,如果非root用户则需要使用sudo执行ktutil命令或者提升keytab权限至644以上。

3.将生成的文件拷贝至Windows机器上,使用kinit进行初始化

使用hdfs凭证进行初始化

1.png

HDFS的服务访问成功
1.png


使用hive凭证进行初始化
1.png


访问HDFS服务成功
1.png


使用hbase凭证进行初始化
1.png


使用yarn凭证进行初始化
1.png


访问HDFS服务成功
1.png


通过上述测试,无论使用hdfs/yarn/hbase/hive任何身份均可正常访问HDFS服务,因此可以得出Kerberos只做身份认证,未做页面的授权。

6.常见问题

1.无法安装Kerberos,提示you must install a windows service错误

可能是由于Window版本问题,本文档选择的安装包本次不支持Windows Server2008(windows的内核版本是6.0,与windows vista相同),所以建议客户端机器选择Windows7或以上版本。

2.设置Kerberos Credential Cache File路径

配置Windows的环境变量

- KRB5_CONFIG: Path for the kerberos inifile.()

- KRB5CCNAME: Path for the kerberoscredential cache file.

1.png

配置完环境变量后,需要重启机器使其环境变量生效。注意默认的“KRB5CCNAME”目录是在C:\temp.

3.在windows下的krb5.ini配置错误导致MIT Kerberos不能启动

如果直接将krb5.conf文件更名为ini文件并替换krb5.ini文件会出现文件格式问题导致MIT Kerberos无法正常启动,配置信息如下:
  1. # Configuration snippets may be placed in this  directory as well
  2. [libdefaults]
  3. default_realm = CLOUDERA.COM
  4. dns_lookup_realm = false
  5. ticket_lifetime = 24h
  6. renew_lifetime = 7d
  7. forwardable = true
  8. rdns =  false
  9. # default_realm = EXAMPLE.COM
  10. #default_ccache_name =  KEYRING:persistent:%{uid}
  11. [realms]
  12. # EXAMPLE.COM = {
  13. #  kdc =  kerberos.example.com
  14. #   admin_server = kerberos.example.com
  15. # }
  16. CLOUDERA.COM = {
  17.   kdc =  ip-172-31-18-97.ap-southeast-1.compute.internal
  18.   admin_server  = ip-172-31-18-97.ap-southeast-1.compute.internal
  19. }
  20. [domain_realm]
  21. # .example.com = EXAMPLE.COM
  22. # example.com = EXAMPLE.COM
  23. .ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM
  24. ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM
复制代码

4.在创建后凭证后,使用该凭证创建keytab文件后,kinit该凭证报密码错误

在生成keytab文件时需要加参数”-norandkey”否则会导致直接使用kinit test@CLOUDERA.com直接初始化时会提示密码错误。

5.在通过浏览器访问Hadoop服务时部分功能能正常,部分功能不正常

需要确认访问的host地址是否加入network.negotiate-auth.trusted-uris中,此参数主要配置需要访问服务的hostname,如果需要访问多个host则以“,”分割。

6.不需要合并所有Hadoop相关的服务的keytab来访问不同的页面,成功初始化一个用户比如HDFS即可。


作者:Hadoop实操原文链接


本帖被以下淘专辑推荐:

欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(2)人评论

跳转到指定楼层
美丽天空 发表于 2018-9-7 11:13:16
感谢分享,学习了
回复

使用道具 举报

jiangzi 发表于 2018-9-8 11:07:17
Windows Kerberos客户端配置并访问CDH~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条