大數據安全淺析
信息安全公益宣傳,信息安全知識啟蒙。
教程列表見微信公眾號底部菜單
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
TAG:計算機與網路安全 |