當前位置:
首頁 > 最新 > 大數據安全淺析

大數據安全淺析

信息安全公益宣傳,信息安全知識啟蒙。

教程列表見微信公眾號底部菜單

adoop安全目錄:

kerberos(已發布)

elasticsearch

knox

oozie

ranger

apache sentry

一、大數據基本組件

二、Hadoop安全背景

共享集群

按照業務或應用的規則劃分資源隊列,並分配給特定用戶

HDFS上存放各種數據,包括公共的、機密的

安全認證:確保某個用戶是自己聲稱的那個用戶

安全授權:確保某個用戶只能做他允許的那些操作

三、設備說明

四、kerberos基本概念:

Principal(安全個體):被認證的個體,有一個名字和口令

KDC(key distribution center ) : 是一個網路服務,提供ticket 和臨時會話密鑰

Ticket:一個票據,客戶用它來向伺服器證明自己的身份,包括客戶標識、會話密鑰、時間戳。

AS (Authentication Server): 認證伺服器

TGS(Ticket Granting Server): 許可證伺服器

TGT:Ticket-granting Ticket

五、kerberos認證過程:

六、集群啟用Kerberos認證

安裝KDC Server

1、安裝一個新的KDC Server(任意一個集群主機,這裡hdp141為例)

2、打開KDC Server的配置文件

# vi /etc/krb5.conf

3、(可選)自定義realms配置(EXAMPLE.COM修改為CESHI.COM,下面例子都為CESHI.COM)

4、創建Kerberos資料庫

創建過程中需要輸入master key。

5、啟動KDC

6、創建kerberos Admin

通過創建一個admin principal創建KDC admin,需要輸入principal的密碼。

打開KDC ACL文件,確認admin principal在KDC ACL中擁有許可權,若沒有對應的域則需要添加。

如果修改了文件kadm5.acl,那麼你就必須重啟kadmin進程

7、啟用Kerberos保護

安裝JCE

必須用官網下載的JCE覆蓋本地已有的JCE,否則將缺少供Kerberos使用的加密方式

在Ambari server所在的主機和集群中的所有主機上,根據使用的JDK版本選擇合適的JCE策略文件。

? Oracle JDK 1.7:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-

download-432124.html

? Oracle JDK 1.8:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-

download-2133166.html

在Ambari Server所在主機和集群中的所有主機上,添加unlimited security policy JCE jars

到目錄$AMBARI_SERVER_JAVA_HOME/jre/lib/security/下。

注意:在所有的主機上,JCE相關的包都必須解壓到配置文件/etc/ambari-server/conf/ambari.properties中屬性java.home所指定的JDK目錄下

重啟Ambari Server(ambari server伺服器hdp140)

8、運行Kerberos保護嚮導

(1) 確認KDC已經安全和正確配置,並且已經在集群的所有主機上配置好JCE。

(2)登錄Ambari Web,打開管理員 > Kerberos

(3)點擊啟用Kerberos,啟用安裝嚮導,選擇條件檢查

(4)提供關於KDC和管理員賬號的信息

KDC相關信息請參考配置文件/etc/krb5.conf

(5)ambari會在集群的主機上安裝Kerberos客戶端,然後通過測試是否能創建principal,生成keytab和分配Keytab來測試是否能連接KDC。

自定義Hadoop使用的Kerberos identities

(6)確認你的配置。你可以通過頁面下載自動創建的包含principals和Keytabs的CSV文件。

(7)停止服務

(8)啟用kerberos

Keytabs保存在主機的/etc/security/keytabs目錄下。

(9)啟動和測試服務

啟動和測試服務成功後點擊完成以結束Kerberos的啟用。

(10)查看已啟用的Kerberos配置

到這裡kerberos安裝完成。

高級選項:

為Ambari Server設置Kerberos(可選項)

1. 使用kadmin在你的KDC所在的主機(hdp141)為Ambari Server創建一個principal。(ambari-server為自定義名)

2. 為此principal生成一個Keytab

3. 將單前目錄生成的Keytab拷貝到Ambari Server所在的集群。確定該文件有合適的許可權,能夠被啟動Ambari Server守護進程所訪問。

4. 停止ambari server

5. 運行setup-security命令,設置JAAS。標紅部分為需要設置部分。

A. 選擇3,Setup Ambari kerberos JAAS configuration

B. 輸入第一步為Ambari Server設置的principal名

C. 輸入Ambari principal的Keytab所在路徑

開始實測:

1.新建測試用戶

普通用戶需要安裝ranger(後面介紹)管理許可權。

列出所有用戶

創建測試用戶

登錄驗證

# kinit test #登陸

ceshi123456.

退出登陸狀態

集群登錄與授權(hdfs用戶)

未使用kerberos用戶認證前執行

使用kerberos用戶認證

此時test用戶默認有查看許可權,無目錄授權

換到hdfs用戶下,初始化hdfs

查看hdfs的Kerberos用戶名

改變目錄屬性:hadoop fs -chown test:hdfs /test

使用test用戶登錄

修改密碼和重新生成

生成新的多用戶使用keytab文件

創建keytab文件(生成到當前文件夾下)

案例:將hive和hdfs的keytab集成到同一個keytab文件中

1. 查看所有princs

2. 添加hdfs的princs的keytab到hdfs-hive.keytab

3. 添加hive的princs的keytab到hdfs-hive.keytab

查看生成的hdfs-hive.keytab

使用生成的Keytab文件登錄

修改租期

1.修改全局租期

#重新啟動

2.手動修改用戶租期時間

#應用例子

退出後,重新啟動

3.使用spark任務測試kerberos下的作業提交

指定spark用戶和密碼

上傳spark文件到opt

#spark測試文件

spark命令提交任務

疑難問題1:

解決:

疑難問題2:

解決:

GIF


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 計算機與網路安全 的精彩文章:

伺服器被入侵了怎麼辦?
Mysql資料庫滲透及漏洞利用

TAG:計算機與網路安全 |