天天看點

CDH6官方文檔中文系列(5)----Cloudera安裝指南(安裝Navigator Encryption)Cloudera安裝指南

Cloudera安裝指南

最近在學習cdh6的官方文檔,網上也比較難找到中文的文檔。

其實官方英文文檔的閱讀難度其實并不是很高,是以在這裡在學習官方文檔的過程中,把它翻譯成中文,在翻譯的過程中加深學習了解,并分享出來和大家一起學習。

中文内容是本人的渣渣英文水準結合有道詞典,谷歌翻譯的結果,文中部分詞語可能翻譯的并不準确,希望大家多多提出意見,共同進步。

cdh6的官方中文文檔系列長期更新,最後目标整理成gitbook,同大家交流學習。

最後,如果你覺得本文對你有用,希望點個贊給作者一點鼓勵哈。

與其感慨路難行不如馬上上路,諸位道友,共同學習,加油!-------天南第一劍修

文章目錄

  • Cloudera安裝指南
    • 官方文檔
    • 安裝Navigator Encryption
      • 安裝Cloudera Navigator密鑰托管伺服器
        • 前提條件
        • 設定内部存儲庫
        • 安裝密鑰托管伺服器
          • 使用Cloudera管理器安裝密鑰托管伺服器
          • 使用指令行安裝密鑰托管伺服器
        • 保護密鑰受托人伺服器主機
        • 利用本地處理器指令集
          • AES-NI
          • Intel RDRAND
        • 初始化密鑰托管伺服器
      • 安裝Cloudera Navigator Key HSM
        • 前提條件
        • 設定内部存儲庫
        • 安裝Navigator Key HSM
          • 設定密鑰HSM存儲庫
          • 安裝密鑰HSM存儲庫
          • 安裝 CDH存儲庫
          • 安裝導航鍵HSM
      • 安裝密鑰托管KMS
        • 設定内部存儲庫
        • 使用包裹安裝Key Trustee KMS
        • 使用包安裝Key Trustee KMS
        • 安裝後配置
      • 安裝由Thales HSM支援的Navigator HSM KMS
        • 用戶端的需求
        • 設定内部存儲庫
        • 使用包裹安裝Thales HSM支援的Navigator HSM KMS
        • 使用Thales HSM支援的包安裝Navigator HSM KMS
        • 安裝後配置
      • 安裝由Luna KMS支援的Navigator HSM KMS
        • 用戶端的先決條件
        • 設定内部存儲庫
        • 使用包裹安裝由Luna HSM支援的Navigator HSM KMS
        • 使用包安裝Luna HSM支援的Navigator HSM KMS
        • 安裝後配置
      • 安裝Cloudera Navigator Encrypt
        • 前置準備
        • 設定内部存儲庫
        • 安裝Navigator Encrypt(rhell相容的作業系統)
          • 安裝Cloudera存儲庫
          • 安裝EPEL存儲庫
          • 安裝核心庫
        • 安裝Navigator Encrypt(SLES系統)
          • 1. 安裝Cloudera存儲庫
          • 2. 安裝NTP
          • 3. 安裝核心子產品包和Navigator 加密用戶端
          • 4. 使不受支援的子產品
        • 安裝Navigator Encrypt(Debian或Ubuntu)
        • 安裝後
        • 為Navigator Encrypt Clients設定TLS
        • 熵要求
          • 使用包管理器安裝rng_tools
          • 從源代碼建構rng工具
        • 解除安裝和重新安裝Navigator 加密
          • 解除安裝Navigator 加密
          • 重新安裝Navigator 加密

官方文檔

本指南提供了在生産環境中安裝Cloudera軟體(包括Cloudera Manager、CDH和其他托管服務)的指導。

對于非生産環境(例如測試和概念驗證用例),請參閱概念驗證安裝指南,了解簡化的(但有限的)安裝過程。

本指南包括以下部分:

  • 安裝前
  • 安裝CM和CDH
  • 安裝Navigator Data Management
  • 安裝Navigator Encryption
  • 安裝後
  • 解決安裝問題
  • 解除安裝Cloudera軟體

安裝Navigator Encryption

下面幾節示範如何安裝Cloudera Navigator加密元件,用于加密Cloudera企業中的靜止資料:

  • Installing Cloudera Navigator Key Trustee Server
  • Installing Cloudera Navigator Key HSM
  • Installing Key Trustee KMS
  • Installing Navigator HSM KMS Backed by Thales HSM
  • Installing Navigator HSM KMS Backed by Luna HSM
  • Installing Cloudera Navigator Encrypt

安裝Cloudera Navigator密鑰托管伺服器

**重要提示:**在安裝Cloudera Navigator密鑰托管伺服器之前,請參閱對靜止資料加密的重要考慮。

在建立密鑰受托人伺服器角色時,它被緊密綁定到安裝它的主機的辨別。不支援将角色移動到不同的主機、更改主機名或更改主機的IP

您可以使用帶有包裹的Cloudera管理器安裝Navigator密鑰托管伺服器,也可以使用帶有包的指令行安裝。有關包裹的更多資訊,請參見包裹。

**注意:**如果您正在或計劃在CDH叢集中使用密鑰托管伺服器,Cloudera強烈推薦使用Cloudera Manager來安裝和管理密鑰托管伺服器,以充分利用Cloudera Manager強大的部署、管理和監控功能。

前提條件

有關加密和密鑰托管伺服器需求的更多資訊,請參見靜态資料加密需求。

設定内部存儲庫

您必須建立一個内部存儲庫來安裝或更新Cloudera Navigator資料加密元件。有關建立内部存儲庫(包括Cloudera管理器、CDH和ClouderaNavigator 加密元件)的說明,請參見以下主題:

  • 配置本地包裹存儲庫
  • 配置本地包存儲庫

安裝密鑰托管伺服器

**重要提示:**該特性需要獲得Cloudera企業許可證。Cloudera Express沒有。有關更多資訊,請參見管理許可證。
使用Cloudera管理器安裝密鑰托管伺服器
**注意:**這些說明僅适用于使用Cloudera管理器。要使用packages安裝密鑰托管伺服器,請跳轉到使用指令行安裝密鑰托管伺服器。

如果您正在安裝用于HDFS透明加密的密鑰托管伺服器,則設定HDFS資料靜态加密向導将安裝和配置密鑰托管伺服器。有關說明,請參閱使用向導啟用HDFS加密。

  1. (建議)在Cloudera Manager中建立一個新的叢集,僅包含将安裝密鑰托管伺服器的主機。Cloudera建議每個叢集使用自己的KTS執行個體。盡管跨叢集共享單個KTS在技術上是可能的,但出于安全原因——特别是由于多個叢集使用的加密密鑰的單點失效而增加的安全風險——它既不被準許也不被支援。要更好地了解此建議的其他安全性原因,請參閱靜态資料加密參考體系結構。有關如何在Cloudera Manager中建立新叢集的說明,請參見添加和删除叢集。
重要提示:添加叢集向導提示您安裝CDH和其他叢集服務。若要退出向導而不安裝CDH,請選擇要安裝的CDH版本并繼續。當安裝開始時,單擊左上角的Cloudera Manager徽标,确認您想退出向導。這允許您使用密鑰托管伺服器主機建立專用叢集,而不需要安裝CDH或密鑰托管伺服器不需要的其他服務。
  1. 按照配置Cloudera Manager伺服器包設定中的說明,将在設定内部存儲庫時建立的内部包存儲庫添加到Cloudera Manager。
  2. 在包含密鑰受托人伺服器主機的叢集上下載下傳、分發和激活密鑰受托人伺服器包,按照管理包的說明操作。
**重要:**Cloudera Manager中的KEYTRUSTEE包不是密鑰托管伺服器包;這是KMS主要受托人的包裹。密鑰托管伺服器的包名是

KEYTRUSTEE_SERVER

激活密鑰托管伺服器包後,Cloudera Manager會提示您重新啟動叢集。單擊Close按鈕忽略此提示。安裝密鑰托管伺服器後,不需要重新啟動叢集。

在使用Cloudera Manager安裝密鑰托管伺服器之後,繼續保護密鑰托管伺服器主機。

使用指令行安裝密鑰托管伺服器

**注意:**這些說明僅适用于使用指令行進行的基于包的安裝。要使用Cloudera管理器安裝密鑰托管伺服器,請參見使用Cloudera管理器安裝密鑰托管伺服器。

如果您正在或計劃将密鑰托管伺服器與CDH叢集結合使用,Cloudera強烈推薦使用Cloudera Manager來安裝和管理密鑰托管伺服器,以充分利用Cloudera Manager強大的部署、管理和監控功能。

  1. 安裝EPEL存儲庫

    依賴包可以通過Enterprise Linux (EPEL)存儲庫的額外包獲得。要安裝EPEL存儲庫,請安裝

    epel-release

    包:
    • 複制

      epel-release-<version>.noarch

      的URL檔案RHEL 6或RHEL 7位于如何我可以使用這些額外的包?EPEL維基頁面的一部分。
    • 運作以下指令安裝EPEL存儲庫
    sudo wget <epel_rpm_url>
    sudo yum install epel-release-<version>.noarch.rpm
               

    用下載下傳的RPM的版本号(例如,6-8)替換。

    如果已經安裝了epel-release包,您将看到類似如下的消息:

    Examining /var/tmp/yum-root-jmZhL0/epel-release-6-8.noarch.rpm: epel-release-6-8.noarch
    /var/tmp/yum-root-jmZhL0/epel-release-6-8.noarch.rpm: does not update installed package.
    Error: Nothing to do
               
    确認安裝了EPEL存儲庫:
    sudo yum repolist | grep -i epel
               
  2. (僅限RHEL 7)啟用額外存儲庫

    密鑰托管伺服器需要

    python-flask

    包。對于RHEL 6,這個包在EPEL存儲庫中提供。對于RHEL 7,它在RHEL

    extras

    存儲庫中提供。要啟用這個存儲庫,運作以下指令:
    sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
               
  3. 安裝PostgreSQL 9.3存儲庫
    **注意:**Cloudera Navigator密鑰托管伺服器目前隻支援PostgreSQL 9.3版本。如果您在密鑰托管伺服器主機上安裝了不同版本的PostgreSQL,請在繼續或選擇安裝密鑰托管伺服器的其他主機之前删除它。
    要安裝PostgreSQL 9.3存儲庫,運作以下指令:
    sudo yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-3.noarch.rpm
               
    **重要提示:**如果您正在使用CentOS,請在CentOS基礎存儲庫中添加以下代碼:
    exclude=python-psycopg2*
               
    預設情況下,基本存儲庫位于

    /etc/yum. repository .d/CentOS-Base.repo

    .如果您有基本存儲庫的内部鏡像,請針對您的環境更新正确的檔案。
  4. 安裝Cloudera存儲庫

    添加您建立的内部存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。

    通過運作以下指令導入GPG密鑰:

    sudo rpm --import http://repo.example.com/path/to/RPM-GPG-KEY-cloudera
               
  5. 安裝CDH存儲庫

    密鑰托管伺服器和密鑰HSM依賴于

    bigtop-utils

    包,它包含在CDH存儲庫中。有關添加CDH存儲庫的說明,請參見配置本地包存儲庫。
  6. 安裝NTP

    網絡時間協定(NTP)服務同步系統時間。Cloudera建議使用NTP來確定系統日志、加密簽名和其他可審計事件中的時間戳在系統之間保持一緻。使用以下指令安裝和啟動NTP:

    sudo yum install ntp
    sudo service ntpd start
    ## For RHEL/CentOS 7, use 'sudo systemctl start ntpd' instead ##
               
  7. 安裝密鑰托管伺服器

    運作以下指令安裝密鑰托管伺服器:

    sudo yum install keytrustee-server
               
  8. 将服務配置為在開機自啟動

    確定

    ntpd

    keytrustee-db

    keytrusteed

    在引導時自動啟動:
    sudo chkconfig ntpd on
    sudo chkconfig keytrustee-db on
    sudo chkconfig keytrusteed on
               
    如果成功,

    chkconfig

    指令不提供輸出。
    **注意:**當密鑰托管伺服器啟動postgresql資料庫時,

    /etc/init.d/postgresql

    腳本不工作,不能用于監控資料庫的狀态。使用

    /etc/init.d/keytrustee-db

    代替。
    安裝密鑰托管伺服器後,繼續保護密鑰托管伺服器主機。

保護密鑰受托人伺服器主機

Cloudera強烈建議保護密鑰托管伺服器主機,以防止對密鑰托管伺服器的未經授權的通路。Red Hat為RHEL提供安全指南:

  • RHEL 6安全指南
  • RHEL 7安全指南

Cloudera還建議将密鑰托管伺服器主機配置為隻允許通過特定端口進行網絡通信。

您可以使用以下示例為EDH叢集建立

iptables

規則。根據組織的安全政策添加環境所需的任何其他端口。注意,在本例中,端口5432是用于遺留機器上的關鍵受托人資料庫的資料庫端口(在版本5.5之前)。端口11371是密匙受信者通信的目前端口,端口11381是資料庫端口。如果阻塞其他端口,請謹慎操作,因為這可能導緻服務中斷。有關密鑰托管伺服器使用的端口的詳細資訊,請參閱Cloudera管理器和ClouderaNavigator 使用的端口。

# Flush iptables
iptables -F
iptables -X

# Allow unlimited traffic on loopback (localhost) connection
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow established, related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open all Cloudera Manager ports to allow Key Trustee Server to work properly

iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 11371 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 11381 -j ACCEPT

# Drop all other connections
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Save iptables rules so that they're loaded if the system is restarted
sed 's/IPTABLES_SAVE_ON_STOP="no"/IPTABLES_SAVE_ON_STOP="yes"/' -i /etc/sysconfig/iptables-config
sed 's/IPTABLES_SAVE_ON_RESTART="no"/IPTABLES_SAVE_ON_RESTART="yes"/' -i /etc/sysconfig/iptables-config
           

利用本地處理器指令集

AES-NI

進階加密标準新指令(AES- ni)指令集旨在提高使用AES加密和解密的速度。一些較新的處理器附帶了AES-NI,它可以在每個伺服器上啟用。如果您不确定裝置上是否有AES-NI可用,運作以下指令來驗證:

grep -o aes /proc/cpuinfo
           

要确定是否加載了AES-NI核心子產品,運作以下指令:

sudo lsmod | grep aesni
           

如果CPU支援

AES-NI

,但沒有加載核心子產品,請參閱作業系統文檔了解安裝aesni-intel子產品的說明。

Intel RDRAND

Intel RDRAND指令集及其底層的數字随機數生成器(DRNG)對于生成加密協定的密鑰不使用

haveged

的情況非常有用。

要确定CPU是否支援RDRAND,運作以下指令:

grep -o rdrand /proc/cpuinfo
           

要啟用RDRAND,請安裝

rng-tools

版本4或更高版本:

  1. 下載下傳源代碼
    sudo wget http://downloads.sourceforge.net/project/gkernel/rng-tools/4/rng-tools-4.tar.gz
               
  2. 提取源代碼:
    tar xvfz rng-tools-4.tar.gz
               
  3. 進入rng-tools-4路徑:
    cd rng-tools-4
               
  4. Run

    ./configure

  5. Run

    make

  6. Run make install

通過以下指令開始

rngd

sudo rngd --no-tpm=1 -o /dev/random
           

初始化密鑰托管伺服器

在安裝密鑰受托人伺服器之後,必須對其進行初始化,然後才能運作。詳情請看:初始化獨立密鑰托管伺服器或Cloudera Navigator密鑰托管伺服器的指令高可用性。

安裝Cloudera Navigator Key HSM

重要提示:在安裝Cloudera Navigator密鑰HSM之前,請參閱靜态資料加密的來進行重要考慮。

Cloudera Navigator Key HSM是一個通用硬體安全子產品(HSM)驅動程式,在目标HSM平台和Cloudera Navigator Key托管伺服器之間進行轉換。

使用Navigator密鑰HSM,您可以使用密鑰受托伺服器安全地存儲和檢索加密密鑰和其他安全對象,而不局限于基于硬體的平台。

前提條件

您必須在密鑰托管伺服器所在的主機上安裝密鑰HSM。有關加密和密鑰HSM要求的更多資訊,請參見靜态資料加密要求。

設定内部存儲庫

您必須建立一個内部存儲庫來安裝或更新Cloudera Navigator密鑰HSM。有關建立内部存儲庫(包括Cloudera Manager、CDH和Cloudera Navigator加密元件)的說明,請參見配置本地包存儲庫。

安裝Navigator Key HSM

**重要提示:**如果您已經實作了密鑰托管伺服器的高可用性,請在每個密鑰托管伺服器主機上安裝和配置密鑰HSM。
  1. 設定密鑰HSM存儲庫
    下載下傳密鑰HSM壓縮包并使用壓縮包中的檔案建立一個本地密鑰HSM存儲庫。有關更多資訊,請參見上面設定内部存儲庫。
  2. 安裝密鑰HSM存儲庫
    添加在步驟1中建立的本地密鑰HSM存儲庫。有關更多資訊,請參見 Configuring a Local Package Repository
$ sudo rpm --import http://repo.example.com/path/to/RPM-GPG-KEY-cloudera
           
  1. 安裝 CDH存儲庫
    密鑰托管伺服器和密鑰HSM依賴于

    bigtop-util

    s包,它包含在CDH存儲庫中。有關添加CDH存儲庫的說明,請參見配置本地包存儲庫。
  2. 安裝導航鍵HSM
    使用yum安裝導航鍵HSM包
sudo yum Install keytrustee-keyhsm
           

​ 預設情況下,Cloudera Navigator密鑰HSM安裝在

/usr/share/keytrustee-server-keyhsm

目錄中。

安裝密鑰托管KMS

**重要提示:**按照這些說明安裝所需的軟體,将Key Trustee KMS service添加到您的叢集;這使您能夠使用Cloudera Navigator Key Trustee Server作為HDFS透明加密的底層密鑰存儲庫。這沒有安裝Key Trustee Server。有關安裝Key Trustee Server的說明,請參見安裝Cloudera Navigator密鑰托管伺服器。在安裝和使用Key Trustee KMS之前,必須安裝Key Trustee Server。

另外,在建立Key Trustee KMS角色時,它被緊密綁定到安裝它的主機的身份。不支援将角色移動到不同的主機、更改主機名或更改主機的IP。

密鑰受托人KMS是一個自定義密鑰管理伺服器(KMS),它使用Cloudera Navigator密鑰受托人伺服器作為底層密鑰存儲庫,而不是預設基于檔案的Java密鑰存儲庫(JKS)的Hadoop KMS。

Key Trustee KMS僅支援在Cloudera管理器部署。您可以使用包裹或包安裝該軟體,但不支援在Cloudera Manager之外運作密鑰托管KMS。

**重要提示:**如果您使用CentOS/Red Hat Enterprise Linux 5.6或更高版本,或使用預設使用AES-256加密的Ubuntu,您必須在所有叢集和Hadoop使用者機器上安裝Java Cryptography Extension (JCE) Unlimited Strength權限政策檔案。

有關JCE政策檔案安裝說明,請參閱jce_policy-x.zip檔案中包含的README.txt檔案。

有關安裝JCE的詳細資訊,請參閱步驟2:安裝用于AES-256加密的JCE政策檔案。

設定内部存儲庫

您必須建立一個内部存儲庫來安裝密鑰受托人KMS。有關建立内部存儲庫(包括Cloudera Manager、CDH和Cloudera Navigator加密元件)的說明,請參見如果您正在使用包裹,則配置本地包存儲庫;如果您正在使用包,則配置本地包存儲庫。

使用包裹安裝Key Trustee KMS

  1. 前往主機>包裹。
  2. 單擊配置并将内部存儲庫添加到遠端包裹存儲庫url部分。更多資訊,請參見配置Cloudera管理器以使用内部遠端包裹存儲庫。
  3. 下載下傳、分發和激活密鑰托管KMS包裹。有關使用包裹安裝或更新元件的詳細說明,請參閱管理包裹。
    注意:Cloudera Manager中的

    KEYTRUSTEE_SERVER

    包裹不是Key Trustee KMS包裹;它是關鍵的托管伺服器包。密鑰受托人KMS的包裹名稱為

    KEYTRUSTEE

使用包安裝Key Trustee KMS

  1. 在設定了内部存儲庫之後,将Key Trustee KMS主機配置為使用存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。
  2. 因為

    keytrustee-keyprovider

    包依賴于

    hadoop-kms

    包,是以必須添加CDH存儲庫。

    有關說明,請參見配置本地包存儲庫。

  3. 使用适合您的作業系統的指令安裝

    keytrustee-keyprovider

  • RHEL-compatible
    sudo yum install keytrustee-keyprovider
               
  • SLES
    sudo zypper install keytrustee-keyprovider
               
  • Ubuntu or Debian
    sudo apt-get install keytrustee-keyprovider
               

安裝後配置

有關安裝密鑰受托人伺服器和配置密鑰受托人KMS以使用密鑰受托人伺服器的說明,請參閱以下主題:

  • 安裝Cloudera Navigator密鑰托管伺服器
  • 使用向導啟用HDFS加密

安裝由Thales HSM支援的Navigator HSM KMS

**重要提示:**按照這些說明安裝所需的軟體,将Thales HSM支援的Navigator HSM KMS添加到您的叢集;這使您能夠使用受支援的Thales HSM作為HDFS透明加密的底層密鑰存儲庫

受Thales HSM支援的HSM KSM是一個使用受支援的Thales HSM作為底層密鑰存儲庫的自定義密鑰管理伺服器(KMS),而不是預設的Hadoop KMS使用的基于檔案的Java密鑰存儲庫(JKS)。

**重要提示:**Thales HSM支援的HSM KSM僅在Cloudera Manager部署中得到支援。您可以使用包裹或包安裝該軟體,但不支援運作由Thales HSM支援的HSM KMS以外的Cloudera Manager。

用戶端的需求

Thales HSM支援的Navigator HSM KMS僅支援在Thales HSMs上 。必須首先安裝Thales HSM用戶端。

需要以下Thales nSolo、nConnect軟體和固件:

  • 伺服器版本:3.67.11cam4
  • 固件:2.65.2
  • 安全世界版本:12.30

在執行Thales HSM設定之前,運作

nfkminfo

指令來驗證是否正确配置了Thales HSM。

$ sudo /opt/nfast/bin/nfkminfo
          World generation 2
          state      0x1727 Initialised Usable Recovery !PINRecovery !ExistingClient
                     RTC NVRAM FTO !AlwaysUseStrongPrimes SEEDebug
           

如果狀态報告

!Usable

,而不是

Usable

,那麼在繼續之前配置Thales HSM。有關如何配置Thales 客戶機的詳細資訊,請參閱Thales 産品文檔。

運作以下指令手動将KMS使用者添加到

nfast

組:

usermod -a -G nfast kms
           

如果不手動添加KMS使用者,安裝可能會失敗。

設定内部存儲庫

要安裝泰利斯HSM支援的Navigator HSM km,必須建立一個内部存儲庫。有關建立内部存儲庫(包括Cloudera Manager、CDH和Cloudera Navigator加密元件)的說明,請參見如果您正在使用包裹,則配置本地包存儲庫;如果您正在使用包,則配置本地包存儲庫。

使用包裹安裝Thales HSM支援的Navigator HSM KMS

  1. 前往主機&gt**;包裹**。
  2. 單擊配置并将内部存儲庫添加到遠端包裹存儲庫url部分。有關更多資訊,請參見配置Cloudera管理器以使用内部遠端包裹存儲庫。
  3. 下載下傳、分發并激活Navigator HSM KMS包裹。有關使用包裹安裝或更新元件的詳細說明,請參閱管理包裹。

    注意:Cloudera Manager中的KEYTRUSTEE_SERVER包裹不是Key Trustee KMS包裹;

    它是關鍵的托管伺服器包。Thales HMS支援的Navigator HSM KMS的包裹名稱是

    KEYTRUSTEE

  4. 如果您正在6.0.0系統中新安裝Thales HSM KMS,那麼在在Cloudera Manager中添加Thales 服務支援的HSM KMS之前,必須将端口設定為非預設值。

    推薦的端口是11501。非特權端口的預設值是9000(無需更改)。要更改特權端口,請登入到Thales HSM KMS計算機,并運作以下指令

sudo /opt/nfast/bin/config-serverstartup --enable-tcp --enable-privileged-tcp --privport=11501
[server_settings] change successful; you must restart the hardserver for this to take effect
# sudo /opt/nfast/sbin/init.d-ncipher restart
 -- Running shutdown script 90ncsnmpd

 -- Running shutdown script 60raserv

...

'ncsnmpd' server now running
           

使用Thales HSM支援的包安裝Navigator HSM KMS

  1. 配置完内部存儲庫之後,配置由Thales HSM主機支援的Navigator KMS服務,以使用存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。
  2. 因為

    keytrustee-keyprovider

    包依賴于

    hadoop-kms

    包,是以必須添加CDH存儲庫。

    有關說明,請參見配置本地包存儲庫。

  3. 使用适合您的作業系統的指令安裝

    keytrustee-keyprovider

    包:
**重要通知:**通過包安裝時,確定在希望運作HSM KMS服務的每台主機上安裝。

​ RHEL-compatible

sudo yum install keytrustee-keyprovider
           

如果您正在6.0.0系統中新安裝Thales HSM KMS,那麼在在Cloudera Manager中添加Thales 服務支援的HSM KMS之前,必須将端口設定為非預設值。推薦的端口是11501。非特權端口的預設值是9000(無需更改)。要更改特權端口,請登入到Thales HSM KMS機器,并運作以下指令:

# sudo /opt/nfast/bin/config-serverstartup --enable-tcp --enable-privileged-tcp --privport=11501
[server_settings] change successful; you must restart the hardserver for this to take effect
# sudo /opt/nfast/sbin/init.d-ncipher restart
 -- Running shutdown script 90ncsnmpd

 -- Running shutdown script 60raserv

...

'ncsnmpd' server now running
           

安裝後配置

有關配置HSM KMS的說明,請參閱使用向導啟用HDFS加密。

安裝由Luna KMS支援的Navigator HSM KMS

**重要提示:**按照這些說明安裝所需的軟體,将Luna HSM支援的Navigator KMS服務添加到您的叢集;這使您能夠使用受支援的Luna HSM作為HDFS透明加密的底層密鑰存儲庫。

luna HSM支援的Navigator HSM KMS是一個定制的密鑰管理伺服器(KMS),它使用受支援的Luna HSM作為底層密鑰存儲庫,而不是預設的Hadoop KMS使用的基于檔案的Java密鑰存儲庫(JKS)。

**重要提示:**Luna HSM支援的Navigator HSM KMS僅在Cloudera Manager部署中支援。您可以使用包裹或包安裝該軟體,但不支援運作由Luna HSM在Cloudera Manager之外支援的Navigator HSM KMS。

用戶端的先決條件

Luna HSM支援的Navigator HSM KMS隻支援Luna HSMs。首先必須安裝Luna HSM客戶機。

關所需的Luna軟體和固件的詳細資訊,請參閱Navigator HSM KMS:推薦硬體和支援的發行版。

在執行Luna HSM KMS設定之前,運作

vt1 verify

指令(位于

/usr/safenet/lunaclient/bin/vtl)

,以驗證Luna HSM配置正确。有關如何配置Luna HSM客戶機的詳細資訊,請參閱Luna産品文檔。

設定内部存儲庫

要安裝Luna HSM支援的導航HSM km,必須建立一個内部存儲庫。有關建立内部存儲庫(包括Cloudera Manager、CDH和Cloudera Navigator加密元件)的說明,請參見如果您正在使用包裹,則配置本地包裹存儲庫;如果您正在使用包,則配置本地包存儲庫。

使用包裹安裝由Luna HSM支援的Navigator HSM KMS

  1. 前往主機>包裹。
  2. 單擊配置并将内部存儲庫添加到遠端包裹存儲庫url部分。有關更多資訊,請參見配置Cloudera管理器以使用内部遠端包裹存儲庫。
  3. 下載下傳、分發并激活Navigator HSM KMS包裹。有關使用包裹安裝或更新元件的詳細說明,請參閱管理包裹。

注意:Cloudera Manager中的

KEYTRUSTEE_SERVER

包裹不是Key Trustee KMS包裹;它是關鍵的托管伺服器包。由Luna HSM支援的航海家HSM公裡的包裹名稱是

KEYTRUSTEE

使用包安裝Luna HSM支援的Navigator HSM KMS

  1. 設定好内部存儲庫之後,配置Luna HSM主機支援的Navigator HSM KMS來使用存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。
  2. 因為

    keytrustee-keyprovider

    包依賴于

    hadoop-kms

    包,是以必須添加CDH存儲庫。有關說明,請參見配置本地包存儲庫。
  3. 使用适合您的作業系統的指令安裝

    keytrustee-keyprovider

    包:

    **重要提示:**通過包安裝時,請確定安裝在希望運作HSM KMS服務的每台主機上。

    RHEL-compatible

sudo yum install keytrustee-keyprovider
           

安裝後配置

有關配置HSM KMS的說明,請參見使用向導啟用HDFS加密

安裝Cloudera Navigator Encrypt

**重要提示:**在安裝ClouderaNavigator 加密之前,請參閱“靜止加密資料”和“ClouderaNavigator 加密相容矩陣”,了解重要事項

前置準備

有關加密和Navigator 加密要求的更多資訊,請參見靜态資料加密要求。

設定内部存儲庫

要安裝或更新Navigator 加密,必須建立一個内部存儲庫。有關建立内部存儲庫(包括Cloudera Manager、CDH和Cloudera Navigator加密元件)的說明,請參見配置本地包存儲庫。

安裝Navigator Encrypt(rhell相容的作業系統)

**注意:**有關受支援的Linux作業系統的詳細資訊,請參閱Cloudera Navigator加密相容矩陣。
  1. 安裝Cloudera存儲庫

    添加您建立的内部存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。

    通過運作以下指令導入GPG密鑰:

    sudo rpm --import http://repo.example.com/path/to/gpg_gazzang.asc
               
  2. 安裝EPEL存儲庫
    依賴包可以通過Enterprise Linux (EPEL)存儲庫的額外包獲得。要安裝EPEL存儲庫,請安裝

    epel -release

    包:
    1. 複制epel-release-.noarch檔案的URL用于RHEL 6或RHEL 7,位于如何我可以使用這些額外的包?EPEL維基頁面的一部分。
    2. 運作以下指令安裝EPEL存儲庫:
      sudo wget <epel_rpm_url>
      sudo yum install epel-release-<version>.noarch.rpm
                 

      用下載下傳的RPM的版本号(例如,6-8)替換。

      如果已經安裝了

      epel-release

      包,您将看到類似如下的消息:
      Examining /var/tmp/yum-root-jmZhL0/epel-release-6-8.noarch.rpm: epel-release-6-8.noarch
      /var/tmp/yum-root-jmZhL0/epel-release-6-8.noarch.rpm: does not update installed package.
      Error: Nothing to do
                 
      确認安裝了EPEL存儲庫:
      sudo yum repolist | grep -i epel
                 
  3. 安裝核心庫

    要使Navigator 加密作為核心子產品運作,必須下載下傳并安裝核心開發頭檔案。每個核心子產品都是專門針對底層核心版本編譯的。作為核心子產品運作允許Navigator 加密,以向使用者空間應用程式提供高性能和完全透明性。

    要确定目前核心版本,請運作

    uname -r

    要安裝目前核心版本的開發頭檔案,請運作:

    ​ 對于具有Unbreakable Enterprise Kernel (UEK)的OL,運作:

    ​ 注意:對于UEK3,你不需要安裝

    kernel-uek-header -*

    ​ 如果yum找不到這些包,它會顯示如下錯誤:
    Unable to locate package <packagename>.
               
    在這種情況下,執行以下操作之一以繼續:
    • ​ 使用像RPM Pbone這樣的工具找到并安裝核心頭檔案包。
    • ​ 将核心更新到最新版本。如果更新核心,則必須在更新後重新啟動,并從grub菜單中選擇核心以使其處于活動狀态。
  4. (僅限RHEL或CentOS)手動安裝dkms

    由于在所有版本的RHEL或CentOS中都存在一個破碎的依賴關系,您必須手動安裝

    dkms

    包:
    sudo yum install http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/dkms-2.1.1.2-1.el6.rf.noarch.rpm
               
  5. 安裝Navigator Encrypt

    使用yum包管理器安裝Navigator 加密用戶端:

    sudo yum install navencrypt
               
    如果您嘗試安裝Navigator 加密不正确或缺少核心頭,您會看到如下消息:
    Building navencryptfs 3.8.0 DKMS kernel module...
    
    #################### BUILDING ERROR ####################
    
    
    
    Creating symlink /var/lib/dkms/navencryptfs/3.8.0/source ->
                     /usr/src/navencryptfs-3.8.0
    
    DKMS: add completed.
    Error! echo
    Your kernel headers for kernel 3.10.0-229.4.2.el7.x86_64 cannot be found at
    /lib/modules/3.10.0-229.4.2.el7.x86_64/build or /lib/modules/3.10.0-229.4.2.el7.x86_64/source.
    
    #################### BUILDING ERROR ####################
    
    Failed installation of navencryptfs 3.8.0 DKMS kernel module !
               
    要恢複,請參閱Navigator 加密核心子產品設定。

安裝Navigator Encrypt(SLES系統)

1. 安裝Cloudera存儲庫

​ 添加您建立的内部存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。

​ 通過運作以下指令導入GPG密鑰:

sudo rpm --import http://repo.example.com/path/to/gpg_gazzang.asc
           
2. 安裝NTP

​ 網絡時間協定(NTP)服務同步系統時間。Cloudera建議使用NTP來確定系統日志、加密簽名和其他可審計事件中的時間戳在系統之間保持一緻。使用以下指令安裝和啟動NTP:

  • SLES 11
    $ sudo zypper install ntp
    # /etc/init.d/ntp start
               
  • SLES 12
    $ sudo zypper install ntp
    # service ntpd start
               
3. 安裝核心子產品包和Navigator 加密用戶端

​ 使用

zypper

安裝核心子產品包(KMP)和Navigator 加密用戶端:

sudo zypper install cloudera-navencryptfs-kmp-<kernel_flavor>
sudo zypper install navencrypt
           

​ 将<kernel_flavor>替換為系統的核心。Navigator 加密支援

default

xen

ec2

核心風格。

4. 使不受支援的子產品

編輯

/etc/modprobe.d/ unsupportedmodules

,并設定

allow_unsupported_modules

1

。例如:

#
# Every kernel module has a flag 'supported'. If this flag is not set loading
# this module will taint your kernel. You will not get much help with a kernel
# problem if your kernel is marked as tainted. In this case you firstly have
# to avoid loading of unsupported modules.
#
# Setting allow_unsupported_modules 1 enables loading of unsupported modules
# by modprobe, setting allow_unsupported_modules 0 disables it. This can
# be overridden using the --allow-unsupported-modules command line switch.
allow_unsupported_modules 1
           
  1. (僅限SLES 12)運作systemctl守護程序-重新加載

由于SLES 12中的更改,您必須在安裝Navigator加密後運作以下指令:

sudo systemctl daemon-reload
           

安裝Navigator Encrypt(Debian或Ubuntu)

  1. 安裝Cloudera存儲庫

添加您建立的内部存儲庫。有關更多資訊,請參見配置主機以使用内部存儲庫。

  • Ubuntu
    echo "deb http://repo.example.com/path/to/ubuntu/stable $DISTRIB_CODENAME main" | sudo tee -a /etc/apt/sources.list
               
  • Debian
    echo "deb http://repo.example.com/path/to/debian/stable $DISTRIB_CODENAME main" | sudo tee -a /etc/apt/sources.list
               
    通過運作以下指令導入GPG密鑰:
wget -O - http://repo.example.com/path/to/gpg_gazzang.asc | apt-key add -
           
  1. 安裝NTP

    網絡時間協定(NTP)服務同步系統時間。Cloudera建議使用NTP來確定系統日志、加密簽名和其他可審計事件中的時間戳在系統之間保持一緻。使用以下指令安裝和啟動NTP:

    sudo apt-get install ntp
    sudo /etc/init.d/ntp start
               
  2. 安裝核心頭檔案

    通過運作

    uname -r

    确定核心版本,并安裝相應的頭檔案:
  3. 安裝Navigator Encrypt用戶端

    安裝Navigator Encrypt:

    sudo apt-get install navencrypt
               

安裝後

為了確定Navigator 加密和NTP在重新啟動後啟動,請使用

chkconfig

将它們添加到啟動順序中:

sudo chkconfig --level 235 navencrypt-mount on
sudo chkconfig --level 235 ntpd on
           

為Navigator Encrypt Clients設定TLS

傳輸層安全(TLS)證書用于使用Navigator 加密來保護通信。Cloudera強烈建議使用由受信任證書頒發機構(CA)簽署的證書。

如果TLS證書是由無法識别的CA(例如内部CA)簽名的,那麼您必須将根證書添加到每個Navigator 加密客戶機的主機證書信任存儲庫中。請注意,Navigator加密使用作業系統的信任存儲,這與Cloudera管理器使用的JDK信任存儲不同。

在Navigator 加密用戶端上設定TLS證書

  1. 如果還沒有安裝,請安裝CA-certificates:
    yum install ca-certificates
               
  2. 啟用動态CA配置功能:
  3. 将根證書複制到主機證書信任存儲庫中
    cp /path/to/root.pem /etc/pki/ca-trust/source/anchors/
               
  4. 更新主機證書信任存儲
    update-ca-trust
               

例子

[[email protected] ~]# service navencrypt-mount stop
Stopping navencrypt directories
 * Umounting /dev/nvtest/test1 ...                         [  OK  ]
 * Umounting /dev/nvtest/test2 ...                         [  OK  ]
 * Unloading module ...                                    [  OK  ]

[[email protected] ~]# update-ca-trust enable
[[email protected] ~]# cp dd-1.lab.usa.company.com.pem /etc/pki/ca-trust/source/anchors/
[[email protected] ~]# update-ca-trust

[[email protected] ~]# service navencrypt-mount start
Starting navencrypt directories
 * Mounting '/dev/nvtest/test1'                            [  OK  ]
 * Mounting '/dev/nvtest/test2'                            [  OK  ]
           

熵要求

許多加密操作,如那些使用TLS或HDFS加密的操作,需要足夠的系統熵來確定随機性;同樣,Navigator 加密需要一個随機數源來確定良好的性能。是以,您需要確定運作Navigator加密(以及密鑰受托人伺服器、密鑰受托人KMS)的主機具有足夠的熵來執行加密操作。

你可以通過運作下面的指令來檢查Linux系統的可用熵:

cat /proc/sys/kernel/random/entropy_avail
           

出顯示目前可用的熵。多次檢查熵,以确定系統上的熵池的狀态。如果熵一直很低(500或更低),則必須通過安裝

rng-tools

version 4或更高版本并啟動

rngd

服務來增加它。

使用包管理器安裝rng_tools

如果

rng-tools

包的版本4或更高版本可以從本地包管理器(

yum

)獲得,那麼直接從包管理器安裝它。如果适當版本的

rng

工具不可用,請參閱從源代碼建構rng工具。

**注意:**如果您正在使用RHEL 6.7和更高版本,或者最新版本的Ubuntu、Debian和SLES,那麼package manager應該提供版本4。x或更高。在安裝之前,一定要檢查包管理器提供的rng工具的版本,以确定是否需要從源代碼建構。

在RHEL 6相容系統上運作以下指令:

sudo yum install rng-tools
sudo service rngd start
sudo chkconfig rngd on
           

對于RHEL 7,運作以下指令:

sudo yum install rng-tools
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system/
systemctl daemon-reload
systemctl start rngd
systemctl enable rngd
           
從源代碼建構rng工具

如果無法使用包管理器安裝rng工具,則從源代碼進行建構。

**注意:**如果包管理器隻提供較舊的版本(3。x或更早),那麼您必須從源代碼建構。

要安裝和啟動

rngd

并從源代碼建構:

  1. 下載下傳源代碼:
    sudo wget http://downloads.sourceforge.net/project/gkernel/rng-tools/4/rng-tools-4.tar.gz
               
  2. 提取源代碼:
    tar xvfz rng-tools-4.tar.gz
               
  3. 輸入rng-tools-4目錄:
    cd rng-tools-4
               
  4. 運作. / configure
  5. 運作make
  6. 運作make install

安裝

rng-tools

後,以root身份運作以下指令啟動rngd守護程序:

sudo rngd --no-tpm=1 -o /dev/random
           

為了提高性能,Cloudera建議将Navigator加密配置為直接從

/dev/random

讀取,而不是從

/dev/ urandom

直接讀取。

要将Navigator 加密配置為使用

/dev/random

作為熵源,請在設定Navigator 加密時向

navencrypt-prepare

指令添加——

use-random

解除安裝和重新安裝Navigator 加密

解除安裝Navigator 加密

對RHEL相容的系統:

sudo yum remove navencrypt
sudo yum remove navencrypt-kernel-module
           

這些指令會删除軟體本身。在與rhell相容的作業系統上,在解除安裝時不會删除

/etc/navencrypt

目錄。如果需要,手動删除它。

重新安裝Navigator 加密

解除安裝導航器加密後,在安裝Cloudera導航器加密時,重新執行您的發行版的安裝說明。

當Navigator加密被解除安裝時,位于

/etc/navencrypt

中的配置檔案和目錄不會被删除。是以,在重新安裝期間不需要使用

navencrypt register

指令。如果不再需要

/etc/navencrypt

目錄中以前的安裝配置資訊,可以删除其中的内容。

繼續閱讀