首頁技術(shù)文章正文

如何搭建Kerberos環(huán)境?

更新時間:2021-09-03 來源:黑馬程序員 瀏覽量:

IT培訓班

按照環(huán)境準備中的設(shè)定,cdh0 cdh1 cdh2 均作為Kerberos 的客戶端, cdh3作為Kerberos的服務(wù)端

搭建Kerberos Server

以下操作運行在cdh3

1. 使用 yum 安裝Kerberos Server的套件

yum install -y krb5-libs krb5-server krb5-workstation

2. 配置 /etc/krb5.conf

vim /etc/krb5.conf

填入以下內(nèi)容:

export HADOOP_HOME=/bigdata/hadoop-2.6.0-cdh5.14.4
export MAVEN_HOME=/bigdata/apache-maven-3.0.5
export HIVE_HOME=/bigdata/hive-1.1.0-cdh5.14.4
export JAVA_HOME=/usr/local/jdk1.8.0_221
export
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$HIVE_HOME/bin:
$PATH
# export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = ITCAST.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
ITCAST.CN = {
kdc = cdh3.itcast.cn
admin_server = cdh3.itcast.cn
}
[domain_realm]

名詞講解:

realm 域:表示一個公司或者一個組織。邏輯上的授權(quán)認證范圍

比如,某個認證賬戶是屬于某個域下的,跨域賬戶不通用

域和FQDN的配置很像,使用大寫,本次演示使用ITCAST.CN 來標記域

其中:

  • logging 塊配置日志相關(guān)

  • libdefaults塊配置默認的設(shè)置,包括ticket的生存周期等

  • realms 是域的配置,可以配置多個realm,本次演示只配置一個 即是 ITCAST.CN

  • domain_realm 是 Kerberos內(nèi)的域 和 主機名的域的一個對應(yīng)關(guān)系

         .itcast.cn 類似 *.itcast.cn 表示如cdh0.itcast.cn cdh1.itcast.cn 等均是ITCAST.CN 這個realm

         .itcast.cn 表示 itcast.cn 這個主機名也是 ITCAST.CN 這個realm的一部分


3. 配置 /var/kerberos/krb5kdc/kdc.conf

填入:

export HADOOP_HOME=/bigdata/hadoop-2.6.0-cdh5.14.4
export MAVEN_HOME=/bigdata/apache-maven-3.0.5
export HIVE_HOME=/bigdata/hive-1.1.0-cdh5.14.4
export JAVA_HOME=/usr/local/jdk1.8.0_221
export
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$HIVE_HOME/bin:
$PATH
# export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/bigdata/hadoop-2.6.0-cdh5.14.4/lib/native
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = ITCAST.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
ITCAST.CN = {
kdc = cdh3.itcast.cn
admin_server = cdh3.itcast.cn
}
[domain_realm]


名詞解釋:

acl_file : Kerberos acl 的一些配置對應(yīng)的文件

kerberos : admin賬戶的 keytab 本地路徑

keytab : 登錄憑證,有了這個相當于直接有了 ticket , 可以免密直接登錄某個賬戶,所以這個文件很重要

在一些企業(yè)的配置中,對于用戶的配置,就是直接發(fā)放給用戶對應(yīng)的 keytab 文件,用戶有了這個文件就能訪問對應(yīng)的資源

就類似于 ssh 中的 登錄私鑰一樣 有了私鑰就能直接登錄機器

這個文件就是一把鑰匙,能開門的

這個配置文件內(nèi):設(shè)置了對于server的一些重要配置

比如:

kdc 的端口

以及ITCAST.CN這個域中的 acl file 文件路徑(下一步設(shè)置它)

admin賬戶的 keytab

支持的加密方法等

4. 配置 /var/kerberos/krb5kdc/kadm5.acl

填入 */admin@ITCAST.CN        *

其中 */admin 是Kerberos中的賬戶形式

如賬戶 rm/cdh0.itcast.cn@ITCAST.CN 表示 在 cdh0機器上的 resourcemanager賬戶,這個賬戶屬于ITCAST.CN這個域

最后的 * 表示 符合 */admin的賬戶擁有所有權(quán)限


這一步也就是配置了admin的規(guī)則 如 admin/ admin@ITCAST.CN 就擁有ITCAST.CN 域內(nèi)的全部權(quán)限

5. 初始化Kerberos的數(shù)據(jù)庫

輸入: kdb5_util create -s -r ITCAST.CN

其中 ITCAST.CN 是對應(yīng)的域,如果你的不同請修改

然后命令要求設(shè)置數(shù)據(jù)庫master的密碼,要求輸入兩次,輸入 krb5kdc 即可

這樣得到 數(shù)據(jù)庫master賬戶: K/M@ITCAST.CN , 密碼: krb5kdc

6. 創(chuàng)建ITCAST.CN 域內(nèi)的管理員

執(zhí)行:kadmin.local 進入 kerberos 的 admin 命令行界面

# 輸入如下內(nèi)容,添加一個用戶
addprinc root/admin@ITCAST.CN
# 要求輸入密碼,輸入root作為密碼(可自行設(shè)置)
# 上面的賬戶就作為ITCAST.CN的管理員賬戶存在 (滿足 */admin@ITCAST.CN 的規(guī)則 擁有全部權(quán)限)
# 再創(chuàng)建一個 測試的管理員用戶
addprinc krbtest/admin@ITCAST.CN # 同樣滿足 */admin@ITCAST.CN 密碼設(shè)置為krbtest
# 查看當前擁有的所有用戶
listprincs

名詞解釋: principal

可以當作是用戶的意思 一個principal由3個部分組成,如下:

nn/cdh0.itcast.cn@ITCAST.CN

也就是 account/instance@realm

其中account 表示賬戶名 或者服務(wù)類型

instance表示實例,一般為主機名表示 屬于這個主機名下的某個賬戶

realm 就是域 如 ITCAST.CN

nn/cdh0.itcast.cn@ITCAST.CN 就表示

nn 這個賬戶 只能在cdh0機器登錄 ITCAST.CN 這個域

7. 重啟Kerberos server的組件并設(shè)置開機自啟

service krb5kdc restart

service kadmin restart
chkconfig krb5kdc on
chkconfig kadmin on








猜你喜歡:

JDK環(huán)境變量配置win10視頻教程【黑馬程序員】

怎樣安裝Eclipse?怎樣啟動Eclipse開發(fā)環(huán)境?

在Postman中如何設(shè)置全局變量和環(huán)境變量?

黑馬程序員python大數(shù)據(jù)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!