官方资料:
安装和配置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分钟(默认值),则客户端将无法进行身份验证。
- 安装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
}
-
创建Kerberos数据库
使用实用程序kdb5_util创建Kerberos数据库。
kdb5_util create -s -
启动KDC
systemctl enable krb5kdc
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin -
创建Kerberos管理员
可以使用“admin” principal在KDC计算机本身或通过网络创建Kerberos主体。
以下说明假定您使用的是KDC计算机并使用kadmin.local命令行管理实用程序。
使用kadmin.local的KDC机器上可以让你无需在开始之前创建一个单独的“admin”的主要创建主体。
注意:
启用Kerberos时,您需要向Ambari提供这些管理员帐户凭据。这允许Ambari连接到KDC,创建集群主体并生成密钥表。-
通过创建管理主体来创建KDC管理员。
kadmin.local -q "addprinc admin/admin" -
确认此admin principal在KDC ACL中具有权限。
使用文本编辑器打开KDC ACL文件:
vi /var/kerberos/krb5kdc/kadm5.acl -
确保KDC ACL文件包含一个条目,以便admin principal管理特定领域的KDC。
当使用与EXAMPLE.COM不同的领域时,请确保您正在使用的领域有一个条目。
如果不存在,则主体创建将失败。
例如,对于admin/admin@HADOOP.COM主体,您应该有一个条目:
*/admin@HADOOP.COM * -
编辑并保存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和管理员帐户的信息
- 在KDC部分中,输入以下信息:
在KDC主机字段中,KDC主机的IP地址或FQDN。可选地,可以包括端口号。
在“ 域名”字段中,创建服务主体时使用的默认域。
(可选)在“ 域”字段中,提供用于将群集中的主机映射到相应域的模式列表。
例如,如果您的主机在其FQDN中具有公共域,例如host1.hortonworks.local和host2.hortonworks.local,则应将其设置为:.hortonworks.local,hortonworks.local
- 在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值。
默认情况下,测试主体名称是群集名称和日期的组合( {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。
网友评论