CD5X开启Kerberos认证
CDH5x开启Kerberosle
环境:
服务器:云服务器
环境版本: CDH:5.12
Cloudera Manager:5.12
lilnux: CentOS 7.8
JDK : 1.8.0_144
Yum源已经安装
CDH已经再Master安装: Mysql
要是没安装:
https://blog.csdn.net/LiHaoHang6/article/details/92711942
服务端的安装配置
- 查看/etc/hosts 我的内网做映射了,要根据自己实际情况。
最好不要像我这样写,不对。。映射内网ip就好了
2.查看是否安装Kerberos
(1):rpm -qa | grep krb5
(2):卸载自带kerberos
特别注意: 千万不要急着卸载, 先观察自己到底存在哪些包, 上图是我已经安装好 kerberos了, 但是当我再第一次检查是否有kerbkeros的时候,自 带:krb5-libs-1.15.1-37.el7_6.x86_64。这个包千万不能删除!
不过你还是可以使用: yum -y remove krb5 这个命令,来删除自带的kerberos,这个包不会被删除掉,因为他附带这一些依赖
千万不要去网上看一些无脑文章,使用: rpm -e --nodeps krb5-libs.x86_64, 这个命令千千万万不能用,否则,yum不能用 ssh不能用。还要花很长时间来解决。所以这个包不用删除。
3.Server节点安装Kerberos
serveros节点安装相关软件
yum install -y krb5-server krb5-workstation krb5-libs krb5-auth-dialog
出现这个提示则安装成功
查看结果: rpm -qa | grep krb5
修改配置
需要配置的文件有两个为kdc.conf和krb5.conf , 配置只是需要Server服务节点配置,也就是我的master节点。查看krb5的配置文件路径,执行下面命令进行查看:
whereis krb5
1.Krb5文件安装配置。
编辑修改krb5.conf文件,执行命令进行修改 vim /etc/krb5.conf
[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]default_realm = HADOOP.COMdns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falseudp_preference_limit= 1pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt#default_realm = HADOOP.COM#default_ccache_name = KEYRING:persistent:%{uid}[realms]HADOOP.COM = {kdc = masteradmin_server = master}[domain_realm].hadoop.com = HADOOP.COM
hadoop.com = HADOOP.COM
注意:[logging] [libdefaults][realms][domain_realm]的前面一定不能有空格
备注说明:
- default_realm = HADOOP.COM 默认的realm,设置 Kerberos 应用程序的默认领域,必须跟要配置的realm的名称一致。
- 如果您有多个领域,只需向 [realms] 节添加其他的语句。
- ticket_lifetime : 表明凭证生效的时限,一般为24小时。
- renew_lifetime : 表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。
- clockskew :时钟偏差是不完全符合主机系统时钟的票据时戳的容差,超过此容差将不接受此票据。通常,将时钟扭斜设置为 300 秒(5 分钟)。这意味着从服务器的角度看,票证的时间戳与它的偏差可以是在前后 5 分钟内。
- udp_preference_limit= 1:禁止使用 udp 可以防止一个 Hadoop 中的错误
- [realms]:列举使用的 realm。
kdc:代表要kdc的位置。格式是 机器:端口 因为配置了hosts 可以使用Master
admin_server:代表admin的位置。格式是机器:端口 Master(全限定名)
- [default_domain]:代表默认的域名
- [appdefaults]:可以设定一些针对特定应用的配置,覆盖默认配置
2.编辑修改kdc.conf,执行下面命令
修改vim /var/kerberos/krb5kdc/kdc.conf配置
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]HADOOP.COM = {acl_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-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal}
注意:[kdcdefaults] 和 [realms] 前面一定不能有空格
备注说明:
- HADOOP.COM:是设定的realms。名字随意。Kerberos可以支持多个realms,大小写敏感,一般为了识别使用全部大写。这个realms跟机器的host没有大关系。
- master_key_type和 supported_enctypes 默认使用 aes256-cts。JAVA 使用 aes256-cts 验证方式需要安装 JCE 包,见下面的说明。为了简便,你可以不使用 aes256-cts 算法,这样就不需要安装 JCE ,我们这里没有使用。
- acl_file:标注了 admin 的主体权限,使用默认的文件。文件格式是:Kerberos_principal permissions [target_principal] [restrictions]
- supported_enctypes:支持的校验方式。
- admin_keytab:KDC 进行校验的 keytab。
3.上传jce的jar包, 因为我们选择了aes那种的加密方式,所以需要jce的jar包
地址: 链接:https://pan.baidu.com/s/1GV2pO5aHT7Xe37ieWXaK1g
提取码:jsxk
然后上传至 ${JAVA_HOME}/jre/lib/security/ 下覆盖掉原来的 所有机器都配置
4.修改kadm5.cal文件 给管理员实例的全部主体进行授权
备注:
- *代表全部的主体
- /admin 代表admin实例
- @HADOOP.COM代表领域
- 最后个*代表全部权限。
这个授权的意思:就是授予admin实例的全部主体对应HADOOP.COM领域的全部权限。
也就是创建Kerberos主体的时候如果实例为admin,就具有HADOOP.COM领域的全部权限,比如创建如下的主体user1/admin就拥有全部的HADOOP.COM领域的权限。
请特别留意:
- 后续都是为了简便创建principal时候都是以”主体”来称谓,因为我们只配置一个领域那么默认领域不写则为HADOOP.COM。如果存在多个领域必须添加@HADOOP.COM。
- 如果创建模式为:addprinc user1 那么就没有指定实例,默认领域为HADOOP.COM,格式为user1@HADOOP.COM
- 如果创建模式为addprinc user1/user1 那么主体为user1实例为user1,领域为默认领域HADOOP.COM。格式为user1/user1@HADOOP.COM
同步至客户端
scp -r /var/kerberos/ slave1的IP :/var/
scp -r /var/kerberos/ slave2的IP :/var/
scp -r /erc/krb5.conf slave1的IP :/etc/krb5.conf
scp -r /erc/krb5.conf slave2的IP :/etc/krb5.conf
已经免密情况下
创建Kerberos数据库
在Kerberos的Server服务器节点上执行生成Kerberos数据库,也就是master节点
执行过程输入两次Kerberos的密码,注意要记住
输入命令:
kdb5_util create -s -r HADOOP.COM
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'NAMENODE.COM',
master key name 'K/M@HADOOP.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: 备注请输入密码:123456
Re-enter KDC database master key to verify: 备注请输入密码:123456
确定Kerberos数据库是否创建完成
可以通过查看/var/kerberos/krb5kdc是否生成principal文件,执行下面命令
(可选)重新创建数据库 删除当下的principal文件
rm -rf /var/kerberos/krb5kdc/*principal*
查看是否删除完成,执行下面命令
再次输入命令:
kdb5_util create -s -r HADOOP.COM
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'NAMENODE.COM',
master key name 'K/M@HADOOP.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: 备注请输入密码:123456
Re-enter KDC database master key to verify: 备注请输入密码:123456
可以通过查看/var/kerberos/krb5kdc是否生成principal文件,执行下面命令
可能遇到问题:创建Kerberos数据库过程可能会在loading random data中等待很长时间
- 原因:因为/dev/random的随机数据产生的很少,可以适当的让网卡传输数据,这样有助于产生随机数据。
- 解决办法:可以重新开启一个窗口执行cat /dev/sda > /dev/urandom命令,加快消耗CPU,增加随机数采集。
创建Kerberos管理员主体/实例并授权
输入: kadmin.local -q "addprinc admin/admin"
Authenticating as principal root/admin@HADOOP.COM with password.
WARNING: no policy specified for admin/admin@HADOOP.COM; defaulting to no policy
Enter password for principal "admin/admin@HADOOP.COM": 备注:输入密码123456
Re-enter password for principal "admin/admin@HADOOP.COM": 备注:输入密码123456
Principal "admin/admin@NAMENODE.COM" created
启动Kerberos并设置开机启动 Centos7操作方法
Server节点启动Kerberos和kadmin服务
- 启动krb5kdc
systemctl start krb5kdc
- 启动 kadmin
systemctl start kadmin
- 加入开机启动
systemctl enable krb5kdc
systemctl enable kadmin
- 查看状态
service krb5kdc status
service kadmin status
检查启动情况
查看krb5kdc启动日志: cat /var/log/krb5kdc.log
正常启动。
查看kadmin启动日志: cat /var/log/kadmind.log
正常启动
Kinit管理员检查
- 通过kinit进行管理员主体检查,执行下面命令,并输入创建管理员主体时的密码
Kinit admin/admin
- 通过klist查看Kerberos管理员主体登录情况,执行下面命令查看
klist
出现上面截图证明kinit管理员主体检查已经正常。
客户端检查
通过其他客户端节点比如slave1节点检查Kerberos服务是否正常,通过运行下面命令
再客户端输入: kadmin admin/admin
备注:到处Kerberos的整个安装配置流程已经完成~
下面全部默认一键继续即可
出现这个安装成功
OK
CD5X开启Kerberos认证相关推荐
- hadoop2.7.2开启kerberos认证
环境介绍: 一共三台机器: hadoop11: 192.168.230.11 namenode .kerberos client hadoop12: 192.168.230.12 datanode . ...
- Spark操作Hive(开启Kerberos认证)代码提交华为云DAYU的MRS Spark组件--方法流程及注意事项
背景: 最近在测试华为云DAYU MRS Spark操作Hive的流程,因kerberos认证的问题一直测试失败. 代码示例: val sparkSession = SparkSession.buil ...
- 使用Spark/Java读取已开启Kerberos认证的HBase
1.赋予drguo用户相应的权限 2.KDC中创建drguo用户并导出相应的keytab文件 [root@bigdata28 ~]# kadmin.local Authenticating as p ...
- Zookeeper集群安装(开启kerberos)
安装规划 zookeeper集群模式,安装到如下三台机器 10.43.159.237 zdh-237 10.43.159.238 zdh-238 10.43.159.239 zdh-239 Kerbe ...
- Zookeeper单机安装(开启kerberos)
安装规划 zookeeper安装到zdh41上面,单机模式 10.43.159.41 zdh41 ZDH.COM 安装用户 zookeeper/zdh1234 useradd -g hadoop -s ...
- 配置两个Hadoop集群Kerberos认证跨域互信(两个集群互通)
配置两个Hadoop集群Kerberos认证跨域互信 两个Hadoop集群开启Kerberos验证后,集群间不能够相互访问,需要实现Kerberos之间的互信,使用Hadoop集群A的客户端访问Had ...
- Java API连接Kerberos认证的HBASE
网上关于 Java 代码连接启用了Kerberos认证的HBASE资料很多,但是总感觉不够准确,总是出现各种问题.经过整合网上资料和亲自试验,得出连接成功的最小配置项如下: java.security ...
- Kylin开启Kerberos安全认证
Kylin开启Kerberos安全认证, 由于Kylin是依赖Hbase启动的, Kylin启动脚本kylin.sh中就是调用的Hbase的启动脚本, 所以当Hbase开启了Keberos之后就等于K ...
- 【安全】CDH集群开启Kerberos安全认证
文章目录 1.安装kerberos 2.CDH集群开启Kerberos安全认证 1.安装kerberos 参考:https://blog.csdn.net/qq_21383435/article/de ...
最新文章
- 计算Python的代码块或程序的运行时间
- [转载]对复旦食堂的印象
- 使用上下文属性将C ++对象嵌入QML
- WinCE切换GPRS
- 获取php服务器ip地址,PHP获取客户端和服务器IP地址
- Anaconda下载源设置及还原默认
- Java责任链模式及异步责任链
- Java实现 pdf 转 图片
- 第一章 Lua - AIR202 控制LED小灯
- matlab 求特征值的命令,matlab中求解特征值方程函数eig
- Excel导入导出功能
- Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
- Redis伪集群搭建
- 想知道未来孩子长相?Python人脸融合告诉你
- NaVicat Premium 字段设计怎么自动生成表格
- 《中国通史》纪录片100集笔记(持更)
- 熊猫的python小课_朋友圈里那个可爱的小熊猫Python编程的学习笔记,学编程,不难!...
- 流水的新技术,铁打的Linux
- resources Builders 校验
- Javaweb人才招聘系统
热门文章
- 0基础学习,软件测试到月薪20k(心得分享)
- dex2jar源码解析----dex转smail
- 素数打表(4种方法)
- 悲惨的卸载学校官网上VC6的故事
- 为什么Firefox在内部架构中使用“ chrome://”协议?
- 微信小程序:历史搜索及根据关键词列表查询
- 动画的帧频设定和人眼生理特关系中的简单数学
- Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory翻译+笔记
- 5G PDSCH物理层过程
- Simulink建模:位运算