溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CDH5.X如何安裝配置kerberos認證

發(fā)布時間:2021-11-12 14:26:42 來源:億速云 閱讀:140 作者:小新 欄目:云計算

小編給大家分享一下CDH5.X如何安裝配置kerberos認證,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. 背景

在Hadoop1.0.0或 者CDH3 版本之前, hadoop并不存在安全認證一說。默認集群內(nèi)所有的節(jié)點都是可靠的,值得信賴的。用戶與HDFS或者M/R進行交互時并不需要進行驗證。導致存在惡意用 戶偽裝成真正的用戶或者服務(wù)器入侵到hadoop集群上,惡意的提交作業(yè),修改JobTracker狀態(tài),篡改HDFS上的數(shù)據(jù),偽裝成NameNode 或者TaskTracker接受任務(wù)等。 盡管在版本0.16以后, HDFS增加了文件和目錄的權(quán)限,但是并沒有強認證的保障,這些權(quán)限只能對偶然的數(shù)據(jù)丟失起保護作用。惡意的用戶可以輕易的偽裝成其他用戶來篡改權(quán)限,致 使權(quán)限設(shè)置形同虛設(shè)。不能夠?qū)adoop集群起到安全保障。

在Hadoop1.0.0或 者CDH3版本后,加入了Kerberos認證機制。使得集群中的節(jié)點就是它們所宣稱的,是信賴的。Kerberos可以將認證的密鑰在集群部署時事先放 到可靠的節(jié)點上。集群運行時,集群內(nèi)的節(jié)點使用密鑰得到認證。只有被認證過節(jié)點才能正常使用。企圖冒充的節(jié)點由于沒有事先得到的密鑰信息,無法與集群內(nèi)部 的節(jié)點通信。防止了惡意的使用或篡改Hadoop集群的問題,確保了Hadoop集群的可靠安全。

2. 安裝過程(需要如下8個步驟)

Configuring a Kerberos 5 Server

When setting up Kerberos, install the KDC first. If it is necessary to set up slave servers, install the master first.

To configure the first Kerberos KDC, follow these steps:

1.確保正常時間同步和 DNS配置Kerberos之前所有的客戶機和服務(wù)器。特別注意Kerberos服務(wù)器和客戶之間的時間同步。如果服務(wù)器和客戶端之間的時間差大于5分鐘 (這是可配置Kerberos 5),Kerberos客戶端不能到服務(wù)器進行身份驗證。這個時間同步是必要的,以防止攻擊者使用一個古老的Kerberos票據(jù)冒充合法用戶。

建議建立一個網(wǎng)絡(luò)時間協(xié)議 (NTP)兼容的客戶端/服務(wù)器網(wǎng)絡(luò)即使Kerberos是沒有被使用。Red Hat Enterprise Linux包括國家結(jié)核控制規(guī)劃方案。指/usr/share/doc/ntp——<版本號> /索引。html(<版本號>是國家結(jié)核控制規(guī)劃的版本號包安裝在您的系統(tǒng))的細節(jié)如何設(shè)置網(wǎng)絡(luò)時間協(xié)議服務(wù)器,和http: //www.ntp.org有關(guān)國家結(jié)核控制規(guī)劃的更多信息。

2. 安裝krb5-libs,krb5-server和krb5-workstation包在專用的機器上運行KDC。這臺機器需要很安全——如果可能的話,它不應(yīng)該運行KDC以外的任何服務(wù)。

3. 編輯/etc/krb5.conf和/var/kerberos/krb5kdc/kdc.conf配置文件反映了域名和domain-to-realm 映射。一個簡單的域可以被取代的實例構(gòu)造的例子。COM和example.com使用正確的域名,一定保持大寫和小寫名稱正確的格式,通過改變從 kerberos.example.com KDC Kerberos服務(wù)器的名稱。按照慣例,所有領(lǐng)域名稱大寫和DNS主機名和域名是小寫的。關(guān)于這些配置文件格式的完整細節(jié),請參考各自的手冊頁。

4. Create the database using the kdb5_util utility from a shell prompt:

/usr/kerberos/sbin/kdb5_util create -s

創(chuàng)建命令創(chuàng)建數(shù)據(jù)庫存儲Kerberos領(lǐng)域的鑰匙。-s強制創(chuàng)建一個隱藏文件的主服務(wù)器密鑰存儲。如果沒有存在隱藏文件的閱讀的關(guān)鍵,Kerberos服務(wù)器(krb5kdc)提示用戶的主服務(wù)器密碼(可用于再生的關(guān)鍵)每次開始。

5. 編輯 /var/kerberos/krb5kdc/kadm5.acl文件,這個文件是用于kadmind使用這個文件來確定哪個最重要的管理者獲得Kerberos數(shù)據(jù)庫的訪問級別。大多數(shù)組織可以靠一行:

*/admin@EXAMPLE.COM  *

大多數(shù)用戶表示在數(shù)據(jù)庫由一個主體(NULL或空的,實例,如joe@EXAMPLE.COM)。在這個配置中,用戶與第二個主要管理的實例(例如,喬/ admin@EXAMPLE.COM)能夠使用全功率領(lǐng)域的Kerberos數(shù)據(jù)庫。

  kadmind服務(wù)器上已經(jīng)開始后,任何用戶都可以訪問它的服務(wù)的任何客戶機或服務(wù)器上運行的kadmin領(lǐng)域。然而,只有用戶kadm5中列出。acl文件可以以任何方式修改數(shù)據(jù)庫,除了更改自己的密碼。

  請注意

  kadmin實用與 kadmind服務(wù)器通過網(wǎng)絡(luò)、通信和使用Kerberos來處理身份驗證。因此,首先校長必須已經(jīng)存在的連接到服務(wù)器之前通過網(wǎng)絡(luò)來管理它。創(chuàng)建第一個 和kadmin本金。本地命令,它是專門設(shè)計用于在同一個主機上KDC和不使用Kerberos身份驗證。

以下的kadmin類型。本地命令創(chuàng)建第一個主KDC終端:  

/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"

6.Start Kerberos using the following commands:

/sbin/service krb5kdc start

/sbin/service kadmin start

/sbin/service krb524 start

7. 為用戶添加主體使用addprinc命令。在kadmin.kadmin和kaadmin.local KDC的命令行接口。因此,許多命令——例如addprinc——發(fā)射后可用kadmin程序。指kadmin手冊頁獲得更多信息。

8. 確認KDC發(fā)行彩票。首先,運行kinit獲得一張票并將其存儲在一個憑證高速緩存文件。接下來,使用列表中查看憑證在緩存中,并使用kdestroy破壞緩存和它所包含的憑證。

請注意

  默認情況下,kinit試圖使用相同的系統(tǒng)登錄驗證用戶名(不是Kerberos服務(wù)器)。如果用戶名不對應(yīng)于主要在Kerberos數(shù)據(jù)庫 中,kinit問題一條錯誤消息。如果出現(xiàn)這種情況,kinit提供正確的名稱主要作為參數(shù)的命令行(kinit <主要>)。

1. 安裝Kerberos。

?3.2. Installing Kerberos

Kerberos packages may be installed by default, but make sure that the appropriate packages are installed for the Kerberos server or client being configured.

To install packages for a Kerberos server:

# yum install krb5-server krb5-libs krb5-auth-dialog

To install packages for a Kerberos client:

# yum install krb5-workstation krb5-libs krb5-auth-dialog

If the Red Hat Enterprise Linux system will use Kerberos as part of single sign-on with smart cards, then also install the required PKI/OpenSSL package:

# yum install krb5-pkinit-openssl

//下載jce替換 ocal_policy.jar and US_export_policy.jar files on each host by extracting the contents of the downloaded package into the $JAVA_HOME/jre/lib/security/ directory.

http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html    //下載完畢后,解壓得到的如下.jar拷貝到j(luò)ava_home/jre/lib/security/文件目錄下:

[root@master ~]# ll

總用量 16

-rw-rw-r-- 1 root root 3035 12月 21 2013 local_policy.jar

-rw-r--r-- 1 root root 7323 12月 21 2013 README.txt

-rw-rw-r-- 1 root root 3023 12月 21 2013 US_export_policy.jar

[root@master ~]# 

[root@master ~]# cp /root/UnlimitedJCEPolicyJDK8/*.jar /usr/java/default/jre/lib/security/

[root@slave1 ~]# yum install krb5-server krb5-libs krb5-auth-dialog   //安裝server端 由于master服務(wù)器上放的服務(wù)比較多,現(xiàn)在把其中一個slave作為一個kerberos服務(wù)器。

//服務(wù)器端安裝完畢后,在客戶端安裝如下對應(yīng)的客戶端。

[root@slave2 ~]#  yum install krb5-workstation krb5-libs krb5-auth-dialog

[root@master ~]#  yum install krb5-workstation krb5-libs krb5-auth-dialog

//修改/etc/krb5.conf

vim /etc/krb5.conf

[root@master ~]# cat /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 = master

dns_lookup_kdc = false

dns_lookup_realm = false

clockskew = 120

ticket_lifetime = 86400

renew_lifetime = 604800

forwardable = true

renewable = true

#default_tgs_enctypes = rc4-hmac

#default_tkt_enctypes = rc4-hmac

#permitted_enctypes = rc4-hmac

#udp_preference_limit = 1

[realms]

master = {

kdc = 192.168.8.94:88

admin_server = 192.168.8.94:749

}

[domain_realm]

[kdc]

profile=/var/kerberos/krb5kdc/kdc.conf

修改完畢后,拷貝到機器其他機器上。

//修改/var/kerberos/krb5kdc/kdc.conf

vim /var/kerberos/krb5kdc/kdc.conf

[root@master ~]# cat /var/kerberos/krb5kdc/kdc.conf 

[kdcdefaults]

 kdc_ports = 88

 kdc_tcp_ports = 88

[realms]

 master = {

  master_key_type = aes256-cts

  max_life = 25h

  max_renewable_life = 4w

  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 des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal

  max_life = 24h

  max_renewable_life = 10d

  #default_principal_flags = +renewable, +forwardable

 }

//修改/etc/

[root@master ~]# vim /var/kerberos/krb5kdc/kadm5.acl

*/admin@master  *

以上三個文件配置完畢后,只需拷貝krb5.conf到集群中其他機器上即可。

[root@master ~]# scp /etc/krb5.conf slave1:/etc/

krb5.conf                                                                             100%  422     0.4KB/s   00:00    

[root@master ~]# scp /etc/krb5.conf slave2:/etc/

krb5.conf                                                                             100%  422     0.4KB/s   00:00    

[root@master ~]# 

//啟動kdc服務(wù)器

/sbin/service krb5kdc start

/sbin/service kadmin start

//創(chuàng)建kerberos數(shù)據(jù)庫 密碼輸入的是:123456

[root@master ~]#  /usr/sbin/kdb5_util create -r master -s

[root@master ~]#  kadmin.local     //創(chuàng)建遠程管理的管理員賬戶

[root@master ~]# kadmin.local 

Authenticating as principal test/admin@master with password.

kadmin.local:  listprincs       //列出所有用戶listprincs

K/M@master

hdfs/slave1@master

kadmin/admin@master

kadmin/changepw@master

kadmin/master@master

krbtgt/master@master

test@master

kadmin.local:  addprinc hadoop/admin@master   //創(chuàng)建測試用戶hadoop

WARNING: no policy specified for wwn@master; defaulting to no policy

Enter password for principal "hadoop@master": 

Re-enter password for principal "hadoop@master": 

Principal "hadoop@master" created.

kadmin.local:  listprincs         //查看,最后一個wwn@master用戶創(chuàng)建成功。  

K/M@master

hdfs/slave1@master

kadmin/admin@master

kadmin/changepw@master

kadmin/master@master

krbtgt/master@master

test@master

hadoop/admin@master

[root@master ~]# kinit hadoop     //測試:使用之前創(chuàng)建的wwn用戶,輸入密碼后,沒有報錯即可。

Password for wwn@master: 

[root@master ~]# klist -e      //查看緩存的票據(jù)認購:可以看到,已經(jīng)以hadoop@master登陸成功。

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: hadoop@master

Valid starting     Expires            Service principal

12/26/14 08:24:48  12/27/14 08:24:48  krbtgt/master@master

        renew until 12/26/14 08:24:52, Etype (skey, tkt): arcfour-hmac, arcfour-hmac 

[root@master krb5kdc]# kinit hadoop

kinit: Client not found in Kerberos database while getting initial credentials

[root@master krb5kdc]# kinit hadoop/admin@master

Password for hadoop/admin@master: 

[root@master krb5kdc]# klist -e

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: hadoop/admin@master

Valid starting     Expires            Service principal

01/05/15 11:16:56  01/06/15 11:16:56  krbtgt/master@master

        renew until 01/05/15 11:17:00, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96 

四、配置KDC

1.創(chuàng)建票據(jù)賬號

[root@master ~]# kadmin.local 

addprinc -randkey hdfs/master@master

addprinc -randkey hdfs/slave1@master

addprinc -randkey hdfs/slave2@master

addprinc -randkey mapred/master@master

addprinc -randkey mapred/slave1@master

addprinc -randkey mapred/slave2@master

addprinc -randkey host/master@master

addprinc -randkey host/slave1@master

addprinc -randkey host/slave2@master

2.創(chuàng)建keytab 文件,該文件是包括票據(jù)賬號+票據(jù)賬號密碼加密的密鑰

[root@master ~]# kadmin.local 

xst -norandkey -k hdfs.keytab hdfs/master host/master

xst -norandkey -k hdfs.keytab hdfs/slave1 host/slave1

xst -norandkey -k hdfs.keytab hdfs/slave2 host/slave2

xst -norandkey -k mapred.keytab mapred/master host/master

xst -norandkey -k mapred.keytab mapred/slave1 host/slave1

xst -norandkey -k mapred.keytab mapred/slave2 host/slave2

3.驗證

[root@master ~]# kinit -k -t /root/hdfs.keytab hdfs/master@master

沒報錯即可。

4. 將hdfs.keytab 和mapred.keytab 拷貝到集群的/usr/lib/hadoop-0.20/conf/

[root@master ~]# cp hdfs.keytab /etc/hadoop/conf/

[root@master ~]# cp mapred.keytab /etc/hadoop/conf/

[root@master conf]# chown hdfs:hadoop hdfs.keytab

[root@master conf]# chown mapred:hadoop mapred.keytab

[root@master conf]# chmod 400 ./*.keytab

五、配置hadoop  (手動配置比較復雜,需要修改如下文件。)

停止hadoop 集群

vim /etc/hadoop/conf/core-site.xml   //修改simple為:kerberos,把第二項的false更改為true

<property>

  <name>hadoop.security.authentication</name>

  <value>kerberos</value>

</property>

<property>

  <name>hadoop.security.authorization</name>

  <value>true</value> 

[root@master conf]# vim /etc/hadoop/conf/hdfs-site.xml

最后配置完成后查看生成的用戶為:

[root@master ~]# kadmin.local 

Authenticating as principal root/admin@master with password.

kadmin.local:  listprincs

HTTP/master@master

HTTP/slave1@master

HTTP/slave2@master

K/M@master

hadoop/admin@master

hbase/master@master

hbase/slave1@master

hbase/slave2@master

hdfs/master@master

hdfs/slave1@master

hdfs/slave2@master

hive/master@master

host/master@master

host/slave1@master

host/slave2@master

httpfs/master@master

hue/master@master

impala/master@master

impala/slave1@master

impala/slave2@master

kadmin/admin@master

kadmin/changepw@master

kadmin/master@master

krbtgt/master@master

mapred/master@master

mapred/slave1@master

mapred/slave2@master

oozie/master@master

solr/master@master

solr/slave1@master

solr/slave2@master

spark/master@master

test@master

yarn/master@master

yarn/slave1@master

yarn/slave2@master

zookeeper/master@master

zookeeper/slave1@master

zookeeper/slave2@master

CDH配置步驟比較簡單:需要如下8個步驟:分別截圖如下:

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

CDH5.X如何安裝配置kerberos認證

以上是“CDH5.X如何安裝配置kerberos認證”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI