CDP存量集群?jiǎn)?dòng)Kerberos
本章節(jié)將為您介紹如何在CDP集群?jiǎn)⒂肒erberos。
本操作流程中將KDC服務(wù)安裝在Cloudera Manager Server所在服務(wù)器上(KDC服務(wù)可根據(jù)自己需要安裝在其他服務(wù)器)。
前提條件
CDP集群正常運(yùn)行
集群未啟用Kerberos
操作流程
安裝及配置KDC服務(wù)
CDP集群?jiǎn)⒂肒erberos
集群環(huán)境
操作系統(tǒng):CentOS7.9
CDP版本:Cloudera Runtime 7.1.6 (Parcels)
采用root用戶進(jìn)行操作
KDC服務(wù)安裝及配置
1.修改/etc/krb5.conf配置
vim/etc/krb5.conf 配置模板
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = BDPHTSEC.COM
dns_lookup_kdc = false
dns_lookup_realm = false
ticket_lifetime = 1d
renew_lifetime = 7d
forwardable = true
default_tgs_enctypes = aes256-cts aes128-cts
default_tkt_enctypes = aes256-cts aes128-cts
permitted_enctypes = aes256-cts aes128-cts
udp_preference_limit = 1
kdc_timeout = 3000
[realms]
BDPHTSEC.COM = {
kdc = cdp-utility-1.c-a4542b55a0e64699.cn-hangzhou.cdp.aliyuncs.com
admin_server = cdp-utility-1.c-a4542b55a0e64699.cn-hangzhou.cdp.aliyuncs.com
}
[domain_realm]
.c-a4542b55a0e64699.cn-hangzhou.cdp.aliyuncs.com = BDPHTSEC.COM
c-a4542b55a0e64699.cn-hangzhou.cdp.aliyuncs.com = BDPHTSEC.COM
配置項(xiàng) | 說(shuō)明 |
[logging] | 表示server端的日志的打印位置 |
[libdefaults] | 每種連接的默認(rèn)配置,需要注意以下幾個(gè)關(guān)鍵的小配置 |
default_realm | BDPHTSEC.COM默認(rèn)的realm,必須跟要配置的realm的名稱(chēng)一致。 |
udp_preference_limit = 1 | 禁止使用udp可以防止一個(gè)Hadoop中的錯(cuò)誤 |
ticket_lifetime | 表明憑證生效的時(shí)限,一般為24小時(shí) |
renew_lifetime | 表明憑證最長(zhǎng)可以被延期的時(shí)限,一般為一個(gè)禮拜 |
kdc | 代表要kdc的位置。格式是機(jī)器:端口 |
admin_server | 代表admin的位置。格式是機(jī)器:端口 |
[domain_realm] | 代表默認(rèn)的域名,注意使用全域名,查看全域名: [root@cdp-utility-1 ~]# hostname -f cdp-utility-1.c-xxxxxxx.cn-beijing.cdp.aliyuncs.com? |
[appdefaults] | 可以設(shè)定一些針對(duì)特定應(yīng)用的配置,覆蓋默認(rèn)配置 |
2.修改/var/kerberos/krb5kdc/kadm5.acl配置
*/admin@BDPHTSEC.COM *
3.修改/var/kerberos/krb5kdc/kdc.conf配置
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
BDPHTSEC.COM = {
database_name = /var/kerberos/krb5kdc/principal
max_renewable_life = 7d
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 aes128-cts
}
BDPHTSEC.COM:設(shè)定的realms。名字隨意。Kerberos可以支持多個(gè)realms,會(huì)增加復(fù)雜度。本文不探討。大小寫(xiě)敏感,一般為了識(shí)別使用全部大寫(xiě)。這個(gè)realms跟機(jī)器的host沒(méi)有太大關(guān)系。
max_renewable_life = 7d:涉及到是否能進(jìn)行ticket的renew必須配置。
master_key_type:和supported_enctypes默認(rèn)使用aes256-cts。由于,JAVA使用aes256-cts驗(yàn)證方式需要安裝額外的jar包(jce-policy)。
acl_file:標(biāo)注了admin的用戶權(quán)限。
admin_keytab:KDC進(jìn)行校驗(yàn)的keytab。后文會(huì)提及如何創(chuàng)建。
supported_enctypes:支持的校驗(yàn)方式。
4.創(chuàng)建Kerberos數(shù)據(jù)庫(kù),并輸入密碼
kdb5_util create –r BDPHTSEC.COM -s
5.創(chuàng)建Kerberos的管理賬號(hào)需要輸入管理員密碼
[root@cdp-utility-1 ~]# kadmin.local
Authenticating as principal root/admin@BDPHTSEC.COM with password.
kadmin.local: addprinc admin/admin@BDPHTSEC.COM
WARNING: no policy specified for admin/admin@BDPHTSEC.COM; defaulting to no policy
Enter password for principal "admin/admin@BDPHTSEC.COM":
Re-enter password for principal "admin/admin@BDPHTSEC.COM":
Principal "admin/admin@BDPHTSEC.COM" created.
kadmin.local: exit
6.將Kerberos服務(wù)添加到自啟動(dòng)服務(wù),并啟動(dòng)krb5kdc和kadmin服務(wù)
[root@ ~]# systemctl enable krb5kdc
Created symlink from /etc/systemd/system/multi-user.target.wants/krb5kdc.service to /usr/lib/systemd/system/krb5kdc.service.
[root@ ~]# systemctl enable kadmin
Created symlink from /etc/systemd/system/multi-user.target.wants/kadmin.service to /usr/lib/systemd/system/kadmin.service.
[root@~]# systemctl start krb5kdc
[root@ ~]# systemctl start kadmin
7.測(cè)試Kerberos的管理員賬號(hào)
[root@cdp-utility-1 ~]# kinit admin/admin@BDPHTSEC.COM
Password for admin/admin@BDPHTSEC.COM:
[root@cdp-utility-1 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@BDPHTSEC.COM
Valid starting Expires Service principal
2021-10-15T16:26:47 2021-10-16T16:26:47 krbtgt/BDPHTSEC.COM@BDPHTSEC.COM
renew until 2021-10-22T16:26:47
8.Cloudera Manager Server服務(wù)器上已經(jīng)默認(rèn)安裝了openldap-clients,如果沒(méi)有可以執(zhí)行下面命令安裝
[root@cdp-utility-1 ~]# yum -y install openldap-client
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
沒(méi)有可用軟件包 openldap-client。
錯(cuò)誤:無(wú)須任何處理
9.將KDC Server上的krb5.conf文件拷貝到所有Kerberos客戶端(分發(fā)到所有的節(jié)點(diǎn))
scp /etc/krb5.conf cdp-master-1:/etc
scp /etc/krb5.conf cdp-core-1:/etc
scp /etc/krb5.conf cdp-core-2:/etc
scp /etc/krb5.conf cdp-core-3:/etc
CDH集群?jiǎn)⒂肒erberos
1.在KDC中給Cloudera Manager添加管理員賬號(hào),并輸入密碼確認(rèn)。
[root@cdp-utility-1 ~]# kadmin.local
Authenticating as principal admin/admin@BDPHTSEC.COM with password.
kadmin.local: addprinc cloudera/admin@BDPHTSEC.COM
2.進(jìn)入Cloudera Manager的“管理”->“安全”界面,選擇“啟用Kerberos”。
3.確保如下列出的所有檢查項(xiàng)都已完成,點(diǎn)擊勾選并繼續(xù)。
4.Enter KDC Information
配置相關(guān)的KDC信息,包括類(lèi)型、KDC服務(wù)器、KDC Realm、加密類(lèi)型以及待創(chuàng)建的Service Principal(hdfs,yarn,hbase,hive等)的更新生命期等,并繼續(xù)。
5.不建議讓Cloudera Manager來(lái)管理krb5.conf, 點(diǎn)擊“繼續(xù)”。
6.輸入Cloudera Manager的Kerbers管理員賬號(hào),一定得和之前創(chuàng)建的賬號(hào)一致,點(diǎn)擊“繼續(xù)”。
7.驗(yàn)證通過(guò),點(diǎn)擊下一步。
8.保持默認(rèn)點(diǎn)擊繼續(xù)。
9.點(diǎn)擊“完成”,至此已成功啟用Kerberos。
等待服務(wù)安裝完成,查看各個(gè)服務(wù)都能正常啟動(dòng)。