环境说明
对于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所有节点下:
# 下载对应jdk1.8的JCE版本
在 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html下载zip包
unzip -o -j -q jce_policy-8.zip -d $JAVA_HOME/jre/lib/security
重启mabari-server
ambari-server restart
yum -y install krb5-server krb5-libs krb5-workstation
注:KDC (Key Distribution Center)密匙分配中心, 其在kerberos中通常提供两种服务:
注:关闭防火墙和selinux
(*注:将上述三个配置文件分别传给子节点,并放入对应位置)
krb5.conf
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
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_principalpermissions[target_principal][restrictions]
admin_keytab:KDC 进行校验的 keytab。
supported_enctypes:支持的校验方式。
kadm5.acl
vim /var/kerberos/krb5kdc/kadm5.acl
文件格式:
principal permissions[target_principal][restrictions]
principal: */admin@EXAMPLE.COM
permissions:* # *代表所有权限
target_principal:选填
restrictions:选填
该文件可扩展,扩展链接:https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/kadm5_acl.html
注意:不要忘记将上述三个配置文件分别传给子节点,并放入对应位置
/usr/sbin/kdb5_util create -s -r EXAMPLE.COM
参数说明:
# 进入Kerberos数据库
kadmin.local
# 创建admin/admin管理员
addprinc admin/admin
最后执行 exit
命令退出。
service krb5kdc start
service kadmin start
chkconfig krb5kdc on
chkconfig kadmin on
这样的话,ambari的Kerberos服务就安装配置成功了。接下来,就可以使用kinit命令来认证用户了。
更多精彩干货内容,请关注微信公众号实时查看
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。