基于ambari的Kerberos安装配置
环境说明
- Ambari 2.6.1.0
- HDP 2.6.4
- Kerberos 1.14.1
一、安装JCE
对于Kerberos系统来说,默认使用的AES-256
来进行加密。在集群启用Kerberos之前,必须在Ambari集群上的每个节点上都装有JCE。
重要:如果您使用的是Oracle JDK,则必须在群集中的所有主机上分发和安装JCE,包括Ambari Server。安装JCE后,请务必重新启动Ambari Server。如果您使用的是OpenJDK,OpenJDK的某些发行版会自动提供无限强度的JCE,因此不需要安装JCE。
JCE与JDK版本是对应的,需要根据JDK的版本来选择JCE版本,下载JCE的zip包并解压到$JAVA_HOME/jre/lib/security
目录下。
jce 6 http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
jce 7 http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/jce-7-download-432124.html
jce 8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
也可直接执行以下命令,在ambari所有节点下:
1 | 下载对应jdk1.8的JCE版本 |
重启mabari-server
1 | ambari-server restart |
二、安装krb5
1 | yum -y install krb5-server krb5-libs krb5-workstation |
注:KDC (Key Distribution Center)密匙分配中心, 其在kerberos中通常提供两种服务:
- Authentication Service (AS):认证服务
- Ticket-Granting Service (TGS):授予票据服务
注:关闭防火墙和selinux
三、kerberos配置
1. 修改配置文件
- krb5.conf
- kdc.conf
- kadm5.acl
(*注:将上述三个配置文件分别传给子节点,并放入对应位置)
krb5.conf
1 | vim /etc/krb5.conf |
参数说明:
[libdefaults]:每种连接的默认配置,需要注意以下几个关键的小配置
default_realm = EXAMPLE.COM 默认的realm,必须跟要配置的realm的名称一致。
ticket_lifetime 表明凭证生效的时限,一般为24小时。
renew_lifetime 表明凭证最长可以被延期的时限,一般为7天。当凭证过期之后, 对安全认证的服务的后续访问则会失败。
[logging]:表示server端的日志的打印位置
[realms]:列举使用的realm。
kdc:代表安装kdc server
的机器。格式是机器ip或者主机名
admin_server:代表安装admin server
的机器。格式是机器ip或者主机名
EXAMPLE.COM:是设定的realm。名字随意。Kerberos可以支持多个realms,会增加复杂度。本文不探讨。
大小写敏感,一般为了识别使用全部大写。这个realm跟机器的hostname没有关系。
kdc.conf
1 | vim /var/kerberos/krb5kdc/kdc.conf |
参数说明:
EXAMPLE.COM:是设定的realm,名称随意。Kerberos可以支持多个realms,会增加复杂度。本文不探讨。书写大小写敏感,一般为了识别使用全部大写。这个realm跟机器的hostname没有关系。
master_key_type:和 supported_enctypes
默认使用 aes256-cts
。JAVA 使用 aes256-cts
验证方式需要安装 JCE 包。
acl_file:标注文件路径,用于设置principal
的权限,需要用户自己创建。文件格式:Kerberos_principal permissions [target_principal] [restrictions]
admin_keytab:KDC 进行校验的 keytab。
supported_enctypes:支持的校验方式。
kadm5.acl
1 | vim /var/kerberos/krb5kdc/kadm5.acl |
文件格式:
principal permissions [target_principal] [restrictions]
principal:`*/admin@EXAMPLE.COM`
permissions: # 代表所有权限
target_principal:选填
restrictions:选填
该文件可扩展,扩展链接:点我
注意:不要忘记将上述三个配置文件分别传给子节点,并放入对应位置
2. 创建kerberos数据库 (*注:会提示你输入密码。)
1 | /usr/sbin/kdb5_util create -s -r EXAMPLE.COM |
参数说明:
其中,[-s]表示生成stash file,并在其中存储master server key(krb5kdc);还可以用[-r]来指定一个krb5.conf 文件中存在的realm name
保存路径为/var/kerberos/krb5kdc 如果需要重建数据库,将该目录下的principal相关的文件删除即可
在此过程中,我们会输入database的管理密码。这里设置的密码一定要记住,如果忘记了,就无法管理Kerberos server。
当Kerberos database创建好后,可以看到目录 /var/kerberos/krb5kdc 下生成了几个文件:
3. 创建管理员(admin/admin@EXAMPLE.COM)(*注:根据提示输入密码)
1 | 进入Kerberos数据库 |
最后执行exit
命令退出。
4. 启动KDC服务器和KDC管理服务器,并使其开机自启动
1 | service krb5kdc start |
四、启用Kerberos向导
1. 开始使用
2. 配置Kerberos
3. 安装和测试Kerberos客户端
4. 配置身份
保持默认配置,点击下一步。
5. 确认配置
6. 停止服务
7. 梳理Kerberize集群
8. 启动和测试服务
9. 完成
这样的话,ambari的Kerberos服务就安装配置成功了。接下来,就可以使用kinit命令来认证用户了。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2018/06/11/Kerberos/Kerberos安装配置.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)