Ambari启用Kerberos认证

官方资料:

https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.2.2/bk_ambari-security/content/ch_amb_sec_guide.html

安装和配置Kerberos服务

说明:

Ambari能够在群集中配置Kerberos以使用现有的MIT KDC或现有的Active Directory安装。本节介绍准备此集成所需的步骤。

注意:

如果您没有现有的KDC(MIT或Active Directory),请安装新的MIT KDC。
请注意,在安装Kerberos客户端后在群集主机上安装KDC 可能会覆盖Ambari生成的krb5.conf文件。

您可以选择让Ambari连接到KDC并自动创建必要的Service和Ambari principal,生成并分发keytabs(“Automated Kerberos Setup”)。
Ambari还提供了手动配置Kerberos的高级选项。如果选择此选项,则必须创建principal,生成并分发keytab。
Ambari不会自动执行此操作(“手动Kerberos设置”)。

支持的密钥分发中心(KDC)版本
Microsoft Active Directory 2008及更高版本
使用Kerberos v5

安装一个新的MIT KDC

注意:
由于Kerberos是时间敏感协议,因此域中的所有主机必须是时间同步的,例如,使用网络时间协议(NTP)。
如果客户端的本地系统时间与KDC的本地系统时间相差5分钟(默认值),则客户端将无法进行身份验证。

  1. 安装KDC服务器
    yum install krb5-server krb5-libs krb5-workstation

使用文本编辑器打开KDC服务器配置文件,
默认位于此处:vi /etc/krb5.conf

通过将kdc和admin_server属性的默认“master-zhou.com”设置替换为KDC服务器主机的完全限定域名,更改此文件的[realms]部分。
在以下示例中,“kerberos.example.com”已替换为“my.kdc.server”。

[realms]
DC.AI.CLOUD = {
admin_server = master-zhou.com
kdc = master-zhou.com
}

  1. 创建Kerberos数据库
    使用实用程序kdb5_util创建Kerberos数据库。
    kdb5_util create -s

  2. 启动KDC
    systemctl enable krb5kdc
    systemctl enable kadmin
    systemctl start krb5kdc
    systemctl start kadmin

  3. 创建Kerberos管理员
    可以使用“admin” principal在KDC计算机本身或通过网络创建Kerberos主体。
    以下说明假定您使用的是KDC计算机并使用kadmin.local命令行管理实用程序。
    使用kadmin.local的KDC机器上可以让你无需在开始之前创建一个单独的“admin”的主要创建主体。
    注意:
    启用Kerberos时,您需要向Ambari提供这些管理员帐户凭据。这允许Ambari连接到KDC,创建集群主体并生成密钥表。

    1. 通过创建管理主体来创建KDC管理员。
      kadmin.local -q "addprinc admin/admin"

    2. 确认此admin principal在KDC ACL中具有权限。
      使用文本编辑器打开KDC ACL文件:
      vi /var/kerberos/krb5kdc/kadm5.acl

    3. 确保KDC ACL文件包含一个条目,以便admin principal管理特定领域的KDC。
      当使用与EXAMPLE.COM不同的领域时,请确保您正在使用的领域有一个条目。
      如果不存在,则主体创建将失败。
      例如,对于admin/admin@HADOOP.COM主体,您应该有一个条目:
      */admin@HADOOP.COM *

    4. 编辑并保存kadm5.acl文件后,必须重新启动kadmin进程。
      systemctl restart kadmin

启用Kerberos安全性

说明:
无论您选择自动或手动Kerberos设置,Ambari都会提供一个向导来帮助您在群集中启用Kerberos。本节提供有关在运行向导之前准备Ambari的信息,以及运行向导的步骤。

注意事项:
1、启用Kerberos的先决条件是在群集上的所有主机(包括Ambari服务器)上安装JCE,并将Ambari Server主机作为群集的一部分。
这意味着Ambari Server主机应该运行Ambari代理。

2、您还应该在主体和UNIX用户名之间创建映射。
创建映射可以帮助解决与主体和本地用户名之间的大小写不匹配相关的访问问题。

3、除非为分布式度量标准存储配置,否则不会使用Kerberos保护Ambari Metrics。
默认情况下,它使用嵌入式度量标准存储,并且不会作为Kerberos向导的一部分进行保护。
如果您希望使用Kerberos保护Ambari Metrics,请在运行Kerberos向导之前查看此主题以启用分布式度量标准存储。

4、如果已安装Centrify并在群集中的任何服务器上使用,则在尝试在群集上启用Kerberos Security之前,请务必参考Centrify的集成指南。
可以在Centrify Server Suite文档库中找到该文档。可以在此处找到特定于Hortonworks的配置指南的直接链接
https://docs.centrify.com/en/css/suite2016/centrify-hortonworks-guide.pdf?_ga=1.204708053.455705619.1372369226

Centrify Server Suite是一种支持Hortonworks的企业级解决方案Apache Hadoop的实现。
Centrify和Hortonworks一起允许您使用您组织的现有Active Directory基础结构,以提供访问控制,权限管理和用户级审计。

1、安装JCE
在群集中启用Kerberos之前,必须在Ambari Server和群集中的所有主机上部署Java Cryptography Extension(JCE)安全策略文件。

如果您使用的是Oracle JDK,则必须在群集中的所有主机上分发和安装JCE,包括Ambari Server。
安装JCE后务必重新启动Ambari Server。如果您使用的是OpenJDK,OpenJDK的某些发行版(例如RHEL / CentOS和Ubuntu)会自动提供无限强度的JCE,因此不需要安装JCE。

① 在Ambari Server上,获取适用于群集中JDK版本的JCE策略文件。
对于Oracle JDK 1.8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
对于Oracle JDK 1.7:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

例如:
wget --no-check-certificate --no-cookies --header“Cookie:oraclelicense = accept-securebackup-cookie”“http://download.oracle.com/otn-pub/java/jce/8/jce_policy- 8.zip”

② 将策略文件存档保存在临时位置。

③ 在Ambari Server上以及群集中的每台主机上,添加无限制的安全策略JCE jar $JAVA_HOME/jre/lib/security/。
例如,运行以下命令将策略jar解压缩到主机上安装的JDK中:
unzip -o -j -q jce_policy-8.zip -d /usr/jdk64/jdk1.8.0_40/jre/lib/security/

④ 重启Ambari服务器: sudo ambari-server restart

⑤ 继续运行Kerberos安全向导。

2、在Principal和UNIX用户名之间创建映射

3、运行Kerberos安全向导

Ambari提供了三个启用Kerberos的选项:
1、现有麻省理工学院MIT KDC
2、现有的Active Directory
3、手动管理Kerberos主体和密钥表

选择现有MIT KDC或现有Active Directory时,Kerberos向导会提示您输入与KDC,KDC管理员帐户以及服务和Ambari主体相关的信息。
一旦提供,Ambari将自动创建主体,生成密钥表并将密钥记录分发给集群中的主机。
将为Kerberos配置服务,并重新启动服务组件以针对KDC进行身份验证。
这是自动设置选项。有关更多详细信息,请参阅启动Kerberos向导(自动安装)。

手动选择“ 管理Kerberos主体和密钥”时,必须创建主体,生成和分发密钥记录;
包括您执行Ambari Server Kerberos设置。Ambari不会自动执行此操作。这是手动设置选项。
有关更多详细信息,请参阅启动Kerberos向导(手动设置)。

启动Kerberos的向导(自动设置)

1、确保已安装并配置了KDC,并已在群集中的每个主机上准备好JCE。

2、登录Ambari Web并浏览到Admin > Kerberos。

3、单击“启用Kerberos”以启动向导。

4、选择您正在使用的KDC类型,并确认您已满足先决条件。

5、提供有关KDC和管理员帐户的信息

  1. 在KDC部分中,输入以下信息:
    在KDC主机字段中,KDC主机的IP地址或FQDN。可选地,可以包括端口号。
    在“ 域名”字段中,创建服务主体时使用的默认域。
    (可选)在“ 域”字段中,提供用于将群集中的主机映射到相应域的模式列表。
    例如,如果您的主机在其FQDN中具有公共域,例如host1.hortonworks.local和host2.hortonworks.local,则应将其设置为:.hortonworks.local,hortonworks.local
  1. 在Kadmin 部分中,输入以下信息:
    1、在Kadmin主机字段中,KDC管理主机的IP地址或FQDN。可选地,可以包括端口号。
    2、将用于创建主体和密钥表的Admin主体和密码。
    3、(可选)如果已为加密密码配置Ambari,则将启用“ 保存管理员凭据”选项。
    使用此选项,您可以让Ambari存储在进行群集更改时使用的KDC管理员凭据。有关此选项的更多信息,请参阅管理管理员凭据。

6、根据您的环境修改任何高级Kerberos设置。

① (可选)要手动管理Kerberos客户端krb5.conf(并且不要让Ambari管理krb5.conf),请展开Advanced krb5-conf 部分并取消选中“Manage”选项。
您必须在每台主机上配置krb5.conf。

注意:
手动管理krb5.conf时,建议确保DNS不用于查找KDC和REALM条目。
依赖DNS可能会导致负面性能和功能影响。要确保不使用DNS,请确保在配置的libdefaults部分中设置以下条目。
[libdefaults]
dns_lookup_kdc = false
dns_lookup_realm = false

② (可选)配置要用于此环境的任何其他KDC,将每个其他KDC的条目添加到Advanced krb5-conf的krb5-conf模板的realms部分。
kdc = {{kdc_host}}
kdc = otherkdc.example.com

③ (可选)要使Ambari不在所有主机上安装Kerberos客户端库,请展开Advanced kerberos-env部分并取消选中“Install OS-specific Kerberos client package(s)”选项。
您必须在每个主机上安装Kerberos客户端实用程序。

④ (可选)如果Kerberos客户端库位于非标准路径位置,请展开“ 高级”kerberos-env部分并调整“Executable Search Paths”选项。

⑤ (可选)如果您的KDC具有密码策略,请展开 Advanced kerberos-env 部分并调整密码选项。

⑥ (可选)Ambari将通过生成测试主体并使用该主体进行身份验证来测试您的Kerberos设置。
要自定义Ambari将使用的测试主体名称,请展开Advanced kerberos-env部分并调整Test Kerberos Principal值。
默认情况下,测试主体名称是群集名称和日期的组合({cluster_name} - {short_date})。测试 完成后,将删除此测试主体。

⑦ (可选)如果需要自定义Ambari将创建的主体的属性,则在使用Active Directory时,请参阅自定义属性模板以获取更多信息。
使用MIT KDC时,您可以在Advanced kerberos-env 部分中传递Principal Attributes选项。
例如,您可以设置与pre-auth或max相关的选项。通过传递:
-requires_preauth -maxrenewlife“7天”

7、继续安装。

8、Ambari将在主机上安装Kerberos客户端,并通过测试Ambari可以创建主体,生成密钥表并分发该密钥表来测试对KDC的访问。

9、自定义Hadoop使用的Kerberos身份并继续对群集进行kerberize。

重要:
在“ 配置标识” 步骤中,请务必查看主体名称,尤其是 “ 常规”选项卡上的 Ambari主体。
默认情况下,这些主体名称会将群集的名称附加到每个Ambari主体。您可以将其保留为默认值,也可以通过从主体名称字符串中删除“ - $ { cluster-name }”来调整它们。例如,如果您的群集名为HDP且您的领域是EXAMPLE.COM,则hdfs主体将创建为hdfs-HDP@EXAMPLE.COM

10、确认您的配置。您可以选择下载Ambari将自动创建的主体和键盘的CSV文件。

11、单击“ 下一步”以启动该过程。

12、创建主体并生成和分发主密钥后,Ambari会更新群集配置,然后启动并测试群集中的服务。

13、完成后退出向导。

14、Ambari Server与群集中的组件进行通信,现在使用Kerberos设置,您需要确保为Kerberos设置Ambari Server。

作为自动Kerberos设置过程的一部分,Ambari Server已获得密钥表并执行设置。
您需要做的就是重新启动Ambari Server才能生效。因此,此时重新启动Ambari Server。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容

  • 演示环境 Centos7.4Ambari-2.6.2.0 使用指南 PS: 以下带#号注释的都是修改的内容 在Se...
    大猪大猪阅读 3,545评论 1 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,502评论 18 139
  • 转载自 JavaChen Blog,作者:JavaChen 原文链接地址:http://blog.javachen...
    101之歌阅读 5,731评论 0 0
  • kdc的双击备份,是为了避免某些原因导致KDC主机宕机后,集群都将无法正确得到认证,从而正常访问集群。为了避免出现...
    凡尔Issac阅读 4,938评论 0 0
  • 前言 本文是根据solr官方文档翻译和改编来的,所以你也在官方文档中看到过,不要惊讶。 安全认证种类 solr带有...
    明翼阅读 6,503评论 1 5