- 环境
centos 7.4
- 安装KDC服务
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
- 修改配置文件 vi /etc/krb5.conf
默认如下
修改为
# Configuration snippets may be placed in this directory as well
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 = JAST.COM
# default_ccache_name = KEYRING:persistent:%{uid}[realms]
JAST.COM = {kdc = hostname1admin_server = hostname1}[domain_realm].jast.com = JAST.COMjast.com = JAST.COM
参数说明
[logging]:表示server端的日志的打印位置
[libdefaults]:每种连接的默认配置,需要注意以下几个关键的小配置
default_realm = HADOOP.COM 默认的realm,必须跟要配置的realm的名称一致。
udp_preference_limit = 1 禁止使用udp可以防止一个Hadoop中的错误
oticket_lifetime表明凭证生效的时限,一般为24小时。
orenew_lifetime表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,
对安全认证的服务的后续访问则会失败。
[realms]:列举使用的realm。
kdc:代表要kdc的位置。
admin_server:代表admin的位置。
default_domain:代表默认的域名
[appdefaults]:可以设定一些针对特定应用的配置,覆盖默认配置。
- 修改配置文件 /var/kerberos/krb5kdc/kadm5.acl 配置
原内容为 */admin@EXAMPLE.COM *
修改为上面配置的域名
*/admin@JAST.COM *
- 修改配置文件 /var/kerberos/krb5kdc/kdc.conf 配置
默认为
修改为
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]JAST.COM = {#master_key_type = aes256-ctsmax_renewable_life= 7d 0h 0m 0s 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}
- 创建Kerberos数据库
需输入两遍你的密码即可
[root@fwqml006 ~]# kdb5_util create -r JAST.COM -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'JAST.COM',
master key name 'K/M@JAST.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
创建完成再目录下有几个创建成功的文件,就是创建的数据文件
- 创建Kerberos的管理账号
[root@xxx ~]# kadmin.local
Authenticating as principal root/admin@JAST.COM with password.
kadmin.local: addprinc admin/admin@JAST.COM #这里输入 addprinc admin/admin@JAST.COM
WARNING: no policy specified for admin/admin@JAST.COM; defaulting to no policy
Enter password for principal "admin/admin@JAST.COM": #这里输入密码
Re-enter password for principal "admin/admin@JAST.COM": #这里确认密码
Principal "admin/admin@JAST.COM" created.
kadmin.local: exit #上面创建完成退出
如果使用 kadmin.local -q "addprinc admin/admin@JAST.COM" 启动的话,可以不需要输入kadmin.local
- 将Kerberos服务添加到自启动服务,并启动krb5kdc和kadmin服务,查看状态
systemctl enable krb5kdc
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin
systemctl status krb5kdc
systemctl status kadmin
启动成功
- 验证 kerberos
[root@xxx ~]# kinit admin/admin@JAST.COM
Password for admin/admin@JAST.COM: #这里输入密码
[root@xxx ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@JAST.COMValid starting Expires Service principal
2019-08-05T14:18:54 2019-08-06T14:18:54 krbtgt/JAST.COM@JAST.COMrenew until 2019-08-12T14:18:54
- 安装所有Kerberos客户端,集群中所有节点
所有节点执行
yum -y install krb5-libs krb5-workstation
- 在Cloudera Manager Server服务器上安装额外的包
yum -y install openldap-clients
- 将KDC Server上的krb5.conf文件拷贝到所有Kerberos客户端
- (注意:这里如果是自己复制过去,要注意权限问题,权限不够最终服务会因Kerberos认证不通过而启动失败)
scp /etc/krb5.conf root@10.248.161.17:/etc/
CDH集群启用Kerberos
- 在KDC中给Cloudera Manager添加管理员账号
[root@fwqml006 ~]# kadmin.local
Authenticating as principal admin/admin@JAST.COM with password.
kadmin.local: addprinc cloudera-scm/admin@JAST.COM #这里输入cloudera-scm/admin@JAST.COM
WARNING: no policy specified for cloudera-scm/admin@JAST.COM; defaulting to no policy
Enter password for principal "cloudera-scm/admin@JAST.COM": #这里输入密码
Re-enter password for principal "cloudera-scm/admin@JAST.COM": #这里输入密码
Principal "cloudera-scm/admin@JAST.COM" created.
kadmin.local: exit
- 进入Cloudera Manager 管理页面启用 Kerberos
- 全部勾选然后点击继续
- 填写方框中的信息,与上面配置文件中相同
- 不建议让Cloudera Manager来管理krb5.conf, 点击“继续”
- .输入Cloudera Manager的Kerbers管理员账号,一定得和之前创建的账号一致,点击“继续”
- 继续
- 默认配置即可,点击继续
- 选择重启集群,使配置生效
- 这里要多等一会,可以去cm server日志中去查看进度
启动集群报错参考 Socket Reader #1 for port 8022: readAndProcess from client:https://datamining.blog.csdn.net/article/details/98615398
启动成功
- 简单验证
查看hdfs数据
进入hbase shell 查看一下
使用 kinit 进行授权即可使用, kinit xxx ,xxx是你需要登陆的账号
创建账户详细使用参考:https://datamining.blog.csdn.net/article/details/98625330