Hdoop学习笔记(HDP)-Part.11 安装Kerberos

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

十一、安装Kerberos

1.安装

服务端,在hdp01上安装

yum install -y krb5-server libkadm5

客户端,在hdp01-05上安装(可选,后面ambari启用kerberos的时候也会安装)

ansible all -m yum -a 'name=krb5-workstation state=present'

2.修改krb5.conf

在hdp01上修改配置文件/etc/krb5.conf

includedir /etc/krb5.conf.d/[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]dns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falsepkinit_anchors = /etc/pki/tls/certs/ca-bundle.crtdefault_realm = HDP315.COMdefault_ccache_name = KEYRING:persistent:%{uid}[realms]HDP315.COM = {kdc = hdp01.hdp.comadmin_server = hdp01.hdp.com}[domain_realm].hdp315.com = HDP315.COMhdp315.com = HDP315.COM
3.修改kdc配置
修改/var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]HDP315.COM = {master_key_type = aes256-ctsacl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabsupported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-cbc-md5:normal des-cbc-crc:normal}

支持的加密方式务必要删掉des-hmac-sha1:normal,否则后续添加hdfs等服务会报WARNING,namenode启动和HA时都会出现问题
WARN security.UserGroupInformation: Not attempting to re-login since the last re-login was attempted less than 60 seconds before
server.AuthenticationFilter (AuthenticationFilter.java:doFilter(608)) - Authentication exception: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type DES3 CBC mode with SHA1-KD is not supported/enabled)

在这里插入图片描述
在这里插入图片描述
修改/var/kerberos/krb5kdc/kadm5.acl,给数据库管理员admin添加ACL权限,*代表全部

*/admin@HDP315.COM      *

4.创建数据库

创建数据库,其中HDP315.COM与/etc/krb5.conf对应,且需要设置管理员密码(lnyd@LNsy115),该命令会在/var/kerberos/krb5kdc/创建principal数据库。

kdb5_util create -r HDP315.COM
ll /var/kerberos/krb5kdc/

在这里插入图片描述
如果遇到数据库已经存在的提示,且需要重建数据库时,可以把/var/kerberos/krb5kdc/目录下的principal的相关文件都删除掉。
启用服务

systemctl start krb5kdc
systemctl start kadmin
systemctl status krb5kdc
systemctl status kadmin

创建管理员admin,以及keyta文件,/var/kerberos/krb5kdc/kadm5.keytab
kdc配置文件中指定了管理员的密码文件为kadmin5.keytab,因此新建账号admin密码存放在了kadmin5.keytab中,相当于获得了管理员身份,管理员的权限则由kadmin.acl中进行控制。账号需要为XXX/admin@HDP315.COM,对应到kadmin5.acl中的格式。

kadmin.local
addprinc -pw lnyd@LNsy115 admin/admin@HDP315.COM
ktadd -k /var/kerberos/krb5kdc/kadm5.keytab -norandkey admin/admin@HDP315.COM

确认是否可以登录,分别用密码和keytab两种方式登录

kinit admin/admin@HDP315.COM
klist
kdestroy
kinit -kt /var/kerberos/krb5kdc/kadm5.keytab admin/admin@HDP315.COM
klist

在这里插入图片描述
进一步验证是否有管理员权限,用kadmin登录,成功则表示权限无问题

kadmin -p admin/admin@HDP315.COM -k -t /var/kerberos/krb5kdc/kadm5.keytab

在这里插入图片描述

5.Abmari启用Kerberos

(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目录下。

unzip /opt/jce_policy-8.zip -d /opt/
cd /root/ansible/
ansible all -m copy -a 'src=/opt/UnlimitedJCEPolicyJDK8/local_policy.jar dest=/usr/local/jdk1.8.0_351/jre/lib/security/'
ansible all -m copy -a 'src=/opt/UnlimitedJCEPolicyJDK8/US_export_policy.jar dest=/usr/local/jdk1.8.0_351/jre/lib/security/'

重启ambari server

ambari-server restart
ambari-server status

(2)启用Kerberos

确认相关准备工作是否完成,并勾选
在这里插入图片描述
在这里插入图片描述
安装方式说明:

选项说明
Using an existing MIT KDCAmbari服务器和集群主机都可以通过网络访问KDC和KDC管理主机。手头有KDC管理凭证。
Install a new MIT KDC安装一个新的MIT KDC
Using an existing IPA使用现有的IPA
Using an existing ADAmbari服务器和集群主机可以通过网络访问域控制器,并能够解析域控制器的DNS名称。已配置LDAP连接。服务主体的Active Directory用户容器已经创建并准备就绪。例如,“OU=Hadoop,OU=People,dc=apache,dc=org”在前面提到的用户容器上,Active Directory管理凭据具有“创建、删除和管理用户帐户”的委托控制。
Using manual Kerberos setup集群主机可以通过网络访问KDC。每个集群主机上都安装了Kerberos客户端实用程序(如kinit)。已经在Ambari服务器主机和集群中的所有主机上设置了Java加密扩展(JCE)。在完成向导之前,Service和Ambari主体将在KDC中手动创建。在完成向导之前,服务和Ambari主体的按键将手动创建并分发到集群主机。

配置Kerberos信息
【KDC信息】
KDC hosts:hdp01.hdp.com
Realm name:HDP315.COM
Domains:hdp315.com
【Kadmin】
Kadmin host:hdp01.hdp.com
Admin principal:admin/admin@HDP315.COM
Admin password:lnyd@LNsy115
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在集群启用Kerberos后,会自动创建出已安装服务(如zookeeper等)的principal,按照约定:服务账号是principal/instance@REALM格式,用户账号是principal@REALM;后续所有服务的操作(安装/卸载等),都需要用对应的principal来进行认证,以增强安全性,keytab文件存储在/etc/security/keytab/目录下
在这里插入图片描述

6.确认开启kerberos后的zk配置

查看zk的server配置,/etc/zookeeper/conf/zookeeper_jaas.conf

Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=false
keyTab="/etc/security/keytabs/zk.service.keytab"
principal="zookeeper/hdp01.hdp.com@HDP315.COM";
};

配置中指定了连接ZooKeeper的principal和keytab要求,因此后面再用客户端zkCLi连接时,需要以此凭证连接

7.常用指令

(1)Kerberos管理员

登录Kerberos server

kadmin.local 用户名

列出所有Kerberos用户

kadmin.local -q listprincs

添加Kerberos用户

kadmin.local -q "addprinc [options] principal"

options主要为
-randkey:随机生成一个值作为principal的key
-pw:设置密码,此选项一般用在脚本中
修改Principal用户信息

kadmin.local -q "modprinc [options] principal"

修改Principal密码

kadmin.local -q "change_password [-randkey] [-keepold] [-e keysaltlist] [-pw password] principal"

删除Principal信息

kadmin.local -q "delete_principal [-force] principal"

生成keytab认证文件

kadmin.local -q "ktadd [-k[eytab] keytab] [-q] [-e keysaltlist] [-norandkey] [principal | -glob princ-exp]"

(2)Kerberos普通用户

获取票据credentials

klist

在这里插入图片描述
列出所有的Kerberos票据credentials信息

klist -k /root/tenant5.keytab

在这里插入图片描述
更新Kerberos票据credentials信息,更新后可以看到Expires时间发生变化

kinit -R -kt keytab principal

在这里插入图片描述
销毁kerberos票据credentials

kdestroy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209745.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jira创建用例,与任务关联

项目用的jira,但之前的用例放在禅道上,或者归档于svn,都不是很好用,所以研究了下jira的用法 1、下载插件: synapseRT - Test management and QA in JIRA 完成后在tab会多出一个test 2、常用的功能 1、建立用例&#…

线上超市小程序可以做什么活动_提升用户参与度与购物体验

标题:线上超市小程序:精心策划活动,提升用户参与度与购物体验 一、引言 随着移动互联网的普及,线上购物已经成为人们日常生活的一部分。线上超市作为线上购物的重要组成部分,以其便捷、快速、丰富的商品种类和个性化…

unity3d模型中缺失animation

在 模型的Rig-Animationtype 设置成Legacy https://tieba.baidu.com/p/2293580178

巧借C++算法实现冒泡排序算法

目录 引言冒泡排序原理具体实现步骤示例代码时间复杂度和稳定性优化可能性结束语 引言 作为计算机专业出身的开发者,以及从事软件开发相关的小伙伴,想必对C语言并不陌生,它是一门非常厉害的编程语言,不仅是基于程序底层的语言&a…

全网最新最全的自动化测试教程:python+pytest接口自动化-请求参数格式的确定

我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json,那么在…

python中的字典

文章目录 字典字典的创建设置默认值(fromkeys函数)字典的基本操作字典的内建函数update方法(更新字典)删除字典字典的常用方法 字典 在Python中,字典是一种无序的、可变的数据结构,用于存储键值对。字典使…

SpringBoot+vue美食外卖点餐系统的研究与设计

目录 前言😃:一、项目简介二、技术选型三、系统功能架构四、功能实现商家端功能实现(1)商家端登录界面(2)工作台界面(3)数据统计界面(4)订单界面(…

Python中使用HTTP代码示例

在Python中,有多种方式可以通过HTTP协议与服务器进行通信。以下是使用requests库和http.client库的示例。 一、使用requests库 requests库是Python中用于发送HTTP请求的流行库。它可以轻松地发送GET、POST、PUT、DELETE等HTTP请求。以下是一个简单的示例&#xff…

实战分析和精华总结:服务器端请求伪造SSRF漏洞数据劫持、复现、分析、利用及修复过程

实战分析和精华总结:服务器端请求伪造SSRF漏洞数据劫持、复现、分析、利用及修复过程。 SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以…

AI医疗交流平台【Docola】申请823万美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于美国的AI医疗交流平台Docola近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为 (DOCO) ,Docola计划…

面试必会-JAVA基础篇-02

文章目录 11. ArrayList 和 LinkedList 的区别是什么?12. 说一下HashMap的实现原理?13. HashMap的put方法的具体流程?14. 讲一讲HashMap的扩容机制15. ConcurrentHashMap 底层具体实现知道吗?16. 创建线程的四种方式17. runnable …

Python 接口自动化 —— requests框架

1.前言 Python内置的urllib模块,也可以用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。因此我们使用 requests 模块进行进行接口测试。 requests官方文档资料地址:http://cn.python-request…

21.Oracle的程序包(Package)

Oracle的程序包Package 一、Package的概述1、什么是Oracle11g的Package2、Package的作用是什么3、常见的系统内置Package 二、创建Package的相关语法1、Package的创建语法2、Package的删除3、具体案例4、Package的使用5、与Package相关的其他语法 三、常见内置程序包的使用1、…

【开源】基于Vue+SpringBoot的民宿预定管理系统

项目编号: S 058 ,文末获取源码。 \color{red}{项目编号:S058,文末获取源码。} 项目编号:S058,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…

【数据分享】2015-2023年我国区县逐月二手房房价数据(Excel/Shp格式)

房价是一个城市发展程度的重要体现,一个城市的房价越高通常代表这个城市越发达,对于人口的吸引力越大!因此,房价数据是我们在各项城市研究中都非常常用的数据!之前我们分享过2015-2023年我国地级市逐月房价数据&#x…

FTP服务文件上传失败,错误码553的排故过程

本文主要记录文件上传失败,错误码553的排故过程。 1 背景 树莓派通过FTP给嵌入式板卡传输文件,好几套设备,发现有的能传输成功,有的传输不成功。树莓派和嵌入式板卡都一样的,出现问题时感觉很懵。 2 逐项对比 2.1 自…

吉利展厅 | 透明OLED拼接2x2:科技与艺术的完美融合

产品:4块55寸OLED透明拼接屏 项目地点:南宁 项目时间:2023年11月 应用场景:吉利展厅 在2023年11月的南宁,吉利展厅以其独特的展示设计吸引了众多参观者的目光。其中最引人注目的亮点是展厅中央一个由四块55寸OLED透…

线程变量引发的session混乱问题

最近不是在救火,就是在救火的路上。 也没什么特别可写的,今天记录下最近遇到的一个问题,个人觉得挺有意思, 待有缘人阅读 言归正传,售后反馈: 营业查询中付款方式为第三方支付的几条银行缴费,创…

ENVI植被指数阈值法

植被指数阈值法提取纯净像元 首先用ENVI打开无人机遥感影像 1. 假彩色显示 打开数据管理工具,无人机的4波段为红边波段 2. 波段计算 打开band math,输入 float(b1-b2)/(b1b2) 选择对应波段 3. 阈值筛选 阈值按经验值选的0.7,ndvi…

爬虫概念、基本使用及一个类型和六个方法(一)

目录 一、爬虫简介 1.什么是爬虫 2.爬虫的核心 3.爬虫的用途 4.爬虫的分类 5.反爬手段 二、Urllib基本使用 1.导入我们需要的包 2.定义一个url 3.模拟浏览器向服务器发送请求 4.获取响应中的页面的源码 5.打印数据 三、一个类型和六个方法 1.定义url,并…