0005-Windows Kerberos客户端配置并访问CDH

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

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/),如下截图:

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

2.2安装Kerberos

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

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

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

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

5.点击“install”进行安装

点击“finish”安装完成

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

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

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

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

3 在Window下使用kinit测试

3.1 使用密码登录Kerberos

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

 [email protected]  keytab$ sudo kadmin.local
 Authenticating as principal  root/[email protected] with password.
 kadmin.local:   addprinc [email protected]
 WARNING: no policy specified for [email protected];  defaulting to no policy
 Enter password for principal  "[email protected]":
 Re-enter password for principal  "[email protected]": Principal "[email protected]" created. 

测试正常

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

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

3.销毁获取到的Ticket

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

4.命令行下初始化

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

5.命令行下kdestroy

客户端数据已destroy

3.2 使用Keytab文件登录Kerberos

1.在KDC Server创建一个ketab文件,使用上一步创建的[email protected]

[email protected]  keytab$ sudo kadmin.local
Authenticating  as principal root/[email protected] with password.
kadmin.local:  xst -norandkey -k test.keytab [email protected]
kadmin.local:  Principal test.keytab does not exist.
Entry  for principal [email protected] with kvno 1, encryption type  aes256-cts-hmac-sha1-96 added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type  aes128-cts-hmac-sha1-96 added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type des3-cbc-sha1  added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type arcfour-hmac  added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type  camellia256-cts-cmac added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type  camellia128-cts-cmac added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type des-hmac-sha1  added to keytab WRFILE:-k.
Entry  for principal [email protected] with kvno 1, encryption type des-cbc-md5  added to keytab WRFILE:-k. 

注意:在生成keytab文件时需要加参数”-norandkey”否则会导致,直接使用kinit [email protected]初始化时会提示密码错误。

生成成功

测试test.keytab文件

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

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

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

4 FireFox浏览器访问

4.1 FireFox浏览器配置

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

2.修改配置参数

network.negotiate-auth.trusted-uris = ip-172-31-18-97.ap-southeast-1.compute.internal,ip-172-31-19-209.ap-southeast-1.compute.internalnetwork.auth.use-sspi = false 

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

4.2 测试访问HDFS服务

1.访问HDFS的50070端口

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

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

3.测试hdfs.keytab是否正常

通过kadmin.loca命令列出所有hdfs的身份

 [email protected] 577-hdfs-NAMENODE#  kadmin.local
 Authenticating as principal  hdfs/[email protected] with password.
 kadmin.local:   listprincs hdfs*
 hdfs/[email protected]
 hdfs/[email protected]
 hdfs/[email protected]
 hdfs/[email protected] 

 [email protected] 577-hdfs-NAMENODE# kinit  -kt hdfs.keytab  hdfs/[email protected]
 [email protected] 577-hdfs-NAMENODE# klist
 Ticket cache: FILE:/tmp/krb5cc\_0
 Default principal: hdfs/[email protected]
 Valid starting       Expires              Service principal07/26/2017 11:23:08  07/27/2017 11:23:08  krbtgt/[email protected]
  renew until 07/31/2017 11:23:08 

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

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

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

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

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

将该hostname添加到配置中

再次访问成功

5 keytab合并及使用

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

2.使用ktutil命令合并keytab文件,操作如下

 [email protected] keytab# ktutil
 ktutil:   rkt hbase.keytab
 ktutil:   rkt hive.keytab
 ktutil:   rkt hdfs.keytab
 ktutil:   rkt yarn.keytab
 ktutil:   wkt test-new.keytab
 ktutil: 

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

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

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

使用hdfs凭证进行初始化

HDFS的服务访问成功

使用hive凭证进行初始化

访问HDFS服务成功

使用hbase凭证进行初始化

访问HDFS服务成功

使用yarn凭证进行初始化

访问HDFS服务成功

通过上述测试,无论使用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.

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

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

如果直接将krb5.conf文件更名为ini文件并替换krb5.ini文件会出现文件格式问题导致MIT Kerberos无法正常启动,配置信息如下:

# Configuration snippets may be placed in this  directory as well

[libdefaults]

 default_realm = CLOUDERA.COM

 dns_lookup_realm = false

 ticket_lifetime = 24h

 renew_lifetime = 7d

 forwardable = true

 rdns =  false

# default_realm = EXAMPLE.COM

 #default_ccache_name =  KEYRING:persistent:%{uid}

[realms]

# EXAMPLE.COM = {

#  kdc =  kerberos.example.com

#   admin_server = kerberos.example.com

# }

 CLOUDERA.COM = {

  kdc =  ip-172-31-18-97.ap-southeast-1.compute.internal

  admin_server  = ip-172-31-18-97.ap-southeast-1.compute.internal

 }

[domain_realm]

# .example.com = EXAMPLE.COM

# example.com = EXAMPLE.COM

 .ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM

 ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM

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

在生成keytab文件时需要加参数”-norandkey”否则会导致直接使用kinit [email protected]直接初始化时会提示密码错误。

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

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

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

7 参考文档

http://doc.mapr.com/display/MapR/Configuring+Kerberos+Authentication+for+Windows

https://www.cloudera.com/documentation/enterprise/latest/topics/cdh\_sg\_browser\_access\_kerberos\_protected\_url.html

https://community.hortonworks.com/articles/28537/user-authentication-from-windows-workstation-to-hd.html

http://web.mit.edu/kerberos/dist/index.html#kfw-4.0

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花!
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

原文地址:http://blog.51cto.com/14049791/2317534

时间: 2024-09-29 04:39:04

0005-Windows Kerberos客户端配置并访问CDH的相关文章

Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 Part III 配置VPN访问账户 本部分主要介绍如何配置VNP相关服务以及配置VPN访问账户的方法,具体如下: 选择路由和远程访问服务器,右键,选择"属性

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端

在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 NFS 服务器和一个客户端.如果还没有,可以参考 安装和配置 NFS 服务器[2] - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置. 另外,你可能还需要配置 SELinux[3] 和 firewalld[4] 以允许通过 NFS 进行文件共享. 下面的例子假设你的 NFS 共享目录在 box2 的 /nfs: # semanage fcontext

openvpn 为指定客户端配置规则和访问策略

需求:    首先我们的需求是这样,我们在外地有三个分部,分别在上海,南京,无锡.这三个地方的同学们需要通过vpn访问北京办公室内网的某台主机,同时在北京的我们也需要在家里vpn进到办公室里边进行访问.    实现的方法是通过 openvpn server 端指定客户端的专有配置,配置里边可以指定特定客户端的ip地址,之后我可以在iptables的FORWARD链里边,根据指定给客户端的ip地址来指定访问规则,规则的制定是这样的,允许指定ip访问特定主机,然后deny特定主机的所有访问,之后放行

Windows 10企业部署实战之客户端配置概览

2015年7月29日晚有幸参加Windows 10全球发布北京鸟巢水立方现场,微软全球执行副总裁沈向洋亲临现场.附现场图如下: 言归正传,今天为大家带来的是微软Windows 10企业部署落地实战之客户端配置需求,其实在windows 10预览版出来的时候windows 10配置要求在微软官网就已经有了,本文为大家稍作整理,相关配置仅供大家参考: 处理器:1GHz或更快的处理器或SoC 内存:1GB(32位)或2GB(64位) 硬盘空间:16GB(32位操作系统)或20GB(64位操作系统) 显

citrix客户端的配置和访问(六)

首先在手机下载一个客户端 看看用手机的效果 点击添加账户 输入用户名 密码 看 这时候我们就用手机控制一台电脑了 大家也可以通过瘦客户端 一个盒子一样的东西访问 系统桌面 我这里没有设备 就不具体实验了 谢谢 citrix客户端的配置和访问(六),布布扣,bubuko.com

LVS DR模式 RealServer 为 Windows客户端配置

LVS   DR模式  Windows 2000,Windows2003客户端配置 控制面板-添加硬件-选"是,我已经连接了此设备"点击下一步-在列表中选择添加新的硬件设备-选"安 装我充从手动..." -接下来的列表中选择"Microsoft loopback adapter " 添加完成后在"网上邻居"右键 设置Microsoft loopback adapter IP地址,子网掩码要设置成VIP所对应的子网掩码  (不能

Rsync+linux客户端+windows客户端配置

Rsync+linux客户端+windows客户端配置 Rsync+linux客户端+windows客户端配置 rsync是一个功能非常强大的工具,Rsync的命令格式可以为以下六种: rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [[email protected]]HOST:DEST rsync [OPTION]... [[email protected]]HOST:SRC DEST rsync [OPTION]... [[email pr

005.iSCSI客户端配置示例-Windows

一 环境 Linux作为iSCSI服务端,Windows2008R2作为iSCSI客户端 二 服务端配置过程 2.1 客户端配置 在Linux上参照之前的配置建立三个LUN卷作为共享盘,最终配置如下: 说明: 建立三个IQN: IQN1-- IQN名称:iqn.2016-10.com.example.system1:iscsi01 ALC规则:允许iqn.2016-10.com.example.ip.7:iscsi.iqn.2016-10.com.example.ip.8:iscsi LUN卷: