Kerberos安装

振鹭2年前技术文章1491

1、环境准备

(1)安装好jdk

(2)下载Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。解压下载后的zip包,将得到的jar包放到所有服务器上的$JAVA_HOME/jre/lib/security/目录下。

image.png

2、安装kerberos相关服务
选择集群中的一台主机(hadoop01)作为Kerberos服务端,安装KDC,所有主机都需要部署Kerberos客户端。
服务端主机执行以下安装命令
yum install -y krb5-server
客户端主机执行以下安装命令(hadoop02,hadoop03)
yum install -y krb5-workstation krb5-libs
3、修改配置文件
(1)服务端主机(hadoop01)
修改/var/kerberos/krb5kdc/kdc.conf文件,内容如下
vim /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88
[realms]
 HDP.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_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
 }
(2)客户端主机(所有主机)
修改/etc/krb5.conf文件,内容如下
vim /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 Default_realm = HADOOP.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 udp_preference_limit = 1 
 rdns = false
 pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
 default_realm = HADOOP.COM
 #default_ccache_name = KEYRING:persistent:%{uid}
[realms]
 HADOOP.COM = {
  kdc = jz001
  admin_server = jz001
 }
[domain_realm]
# .HADOOP.com = HADOOP.COM
# HADOOP.com = HADOOP.COM
3、修改管理员权限配置权限
在服务端主机(jz001)修改/var/kerberos/krb5kdc/kadm5.acl文件,内容如下
*/admin@HDP.COM     *

image.png

4、将修改好的文件发送到其它所有客户端主机

scp /etc/krb5.conf root@hadoop02:/etc/krb5.conf
scp /var/kerberos/krb5kdc/kdc.conf  root@hadoop02:/var/kerberos/krb5kdc/kdc.conf
scp /var/kerberos/krb5kdc/kadm5.acl root@hadoop02:/var/kerberos/krb5kdc/kadm5.acl
5、初始化kdc数据库

在服务端主机(jz001)执行以下命令,并根据提示输入密码。

kdb5_util create -s -r HADOOP.COM

注意事项:

-s选项指定将数据库的主节点密钥存储在文件中,从而可以在每次启动KDC时自动重新生成主节点密钥。记住主密钥,稍后会使用。
这里需要输入一个管理KDC数据库的密码!千万别忘记了,忘记的话就只能重新初始化KDC数据库啦!
如果遇到数据库已经存在的提示,可以把/var/kerberos/krb5kdc/目录下的principal的相关文件都删除掉。默认的数据库名字都是principal(rm -f /var/kerberos/krb5kdc/principal*)。可以使用-d指定数据库名字。
另外:
当我们创建Kerberos数据库成功后,默认会在该目录下创建以下5个文件。
[root@hadoop01 hadoop]# ll -a /var/kerberos/krb5kdc/
总用量 56
drwxr-xr-x. 2 root root   168 7月  21 15:34 .
drwxr-xr-x. 4 root root    33 7月   6 17:40 ..
-rw-------. 1 root root    75 7月   6 18:57 .k5.HADOOP.COM
-rw-------. 1 root root    72 7月   6 18:43 .k5.HDP.COM
-rw-------. 1 root root    22 7月   6 17:53 kadm5.acl
-rw-------. 1 root root   446 7月   6 17:41 kdc.conf
-rw-------. 1 root root 32768 7月  19 01:52 principal
-rw-------. 1 root root  8192 7月   6 18:57 principal.kadm5
-rw-------. 1 root root     0 7月   6 18:57 principal.kadm5.lock
-rw-------. 1 root root     0 7月  19 01:52 principal.ok
[root@hadoop01 hadoop]#
初始化KDC超级管理员
kadmin.local -q "addprinc admin/admin@HADOOP.COM"
根据提示设置KDC管理员密码,一定要记住
admin/admin:为管理员账户
HADOOP.COM:为手动配置的realm
密码:admin
6、启动kerberos相关服务
在主节点启动KDC,并配置开机自启
systemctl start krb5kdc
systemctl enable krb5kdc
在主节点启动Kadmin,该服务为KDC数据库访问入口
systemctl start kadmin
systemctl enable kadmin
7、创建kerberos管理员用户
kadmin.local -q "addprinc admin/admin"


相关文章

oracle adg切换

1 主库转备库注意:原则上至多只能有一个主库,但是备库可以多个,所以需要先进行主库转备库操作。1.1 查看主库角色切换状态SYS@proe>select name,database_role,s...

MySQL运维实战(2.1) 登录失败次数太多导致主机被block的问题处理

参数max_connect_errorsMySQL有参数max_connect_errors,当一个主机尝试登录MySQL,失败的次数超过了max_connect_errors,则这个主机将无法登录到...

大数据集群部署规划(一)关于节点的定义

大数据集群部署规划(一)关于节点的定义

节点定义:CDH集群节点定义CDH 官方文档有一份更详细的节点和角色配置,官网将主机分成以下四种类型: 1) Master hosts run Hadoop master processes such...

CDP实操--Ranger Tag-based策略验证(四)

CDP实操--Ranger Tag-based策略验证(四)

1.1Ranger Tag-based策略验证在Ranger webui里给allan_admin和sam_sec用户赋权,给予添加classification的权限使用allan_admin或者sa...

MySQL 小版本升级

MySQL 小版本升级

MySQL 版本一般不需要经常升级,如果需要使用某个新特性或者修改 BUG 就不得不升级小版本。1. 环境调研当前数据库版本和需要升级到某个版本,如果升级需求 5.6.22+ 那么我们直接下载 5.6...

kubernetes实战详解

kubernetes实战详解

一、k8s是什么?1、Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统2、生产级别的容器编排系统3、PaaS平台二、容器是什么?或者说docker是什么?1、容器就是一个沙箱C...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。