最近在学习cdh6的官方文档,网上也比较难找到中文的文档。
其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习了解,并分享出来和大家一起学习。
中文内容是本人的渣渣英文水平结合有道词典,谷歌翻译的结果,文中部分词语可能翻译的并不准确,希望大家多多提出意见,共同进步。
cdh6的官方中文文档系列长期更新,最后目标整理成gitbook,同大家交流学习。
最后,如果你觉得本文对你有用,希望点个赞给作者一点鼓励哈。
与其感慨路难行不如马上上路,诸位道友,共同学习,加油!-------天南第一剑修
本指南提供了在生产环境中安装Cloudera软件(包括Cloudera Manager、CDH和其他托管服务)的指导。
对于非生产环境(例如测试和概念验证用例),请参阅概念验证安装指南,了解简化的(但有限的)安装过程。
本指南包括以下部分:
下面几节演示如何安装Cloudera Navigator加密组件,用于加密Cloudera企业中的静止数据:
**重要提示:**在安装Cloudera Navigator密钥托管服务器之前,请参阅对静止数据加密的重要考虑。
在创建密钥受托人服务器角色时,它被紧密绑定到安装它的主机的标识。不支持将角色移动到不同的主机、更改主机名或更改主机的IP
您可以使用带有包裹的Cloudera管理器安装Navigator密钥托管服务器,也可以使用带有包的命令行安装。有关包裹的更多信息,请参见包裹。
**注意:**如果您正在或计划在CDH集群中使用密钥托管服务器,Cloudera强烈推荐使用Cloudera Manager来安装和管理密钥托管服务器,以充分利用Cloudera Manager强大的部署、管理和监控功能。
有关加密和密钥托管服务器需求的更多信息,请参见静态数据加密需求。
您必须创建一个内部存储库来安装或升级Cloudera Navigator数据加密组件。有关创建内部存储库(包括Cloudera管理器、CDH和ClouderaNavigator 加密组件)的说明,请参见以下主题:
**重要提示:**该特性需要获得Cloudera企业许可证。Cloudera Express没有。有关更多信息,请参见管理许可证。
**注意:**这些说明仅适用于使用Cloudera管理器。要使用packages安装密钥托管服务器,请跳转到使用命令行安装密钥托管服务器。
如果您正在安装用于HDFS透明加密的密钥托管服务器,则设置HDFS数据静态加密向导将安装和配置密钥托管服务器。有关说明,请参阅使用向导启用HDFS加密。
重要提示:添加集群向导提示您安装CDH和其他集群服务。若要退出向导而不安装CDH,请选择要安装的CDH版本并继续。当安装开始时,单击左上角的Cloudera Manager徽标,确认您想退出向导。这允许您使用密钥托管服务器主机创建专用集群,而不需要安装CDH或密钥托管服务器不需要的其他服务。
按照配置Cloudera Manager服务器包设置中的说明,将在设置内部存储库时创建的内部包存储库添加到Cloudera Manager。
在包含密钥受托人服务器主机的集群上下载、分发和激活密钥受托人服务器包,按照管理包的说明操作。
**重要:**Cloudera Manager中的KEYTRUSTEE包不是密钥托管服务器包;这是KMS主要受托人的包裹。密钥托管服务器的包名是
KEYTRUSTEE_SERVER
。
激活密钥托管服务器包后,Cloudera Manager会提示您重新启动集群。单击Close按钮忽略此提示。安装密钥托管服务器后,不需要重新启动集群。
在使用Cloudera Manager安装密钥托管服务器之后,继续保护密钥托管服务器主机。
**注意:**这些说明仅适用于使用命令行进行的基于包的安装。要使用Cloudera管理器安装密钥托管服务器,请参见使用Cloudera管理器安装密钥托管服务器。
如果您正在或计划将密钥托管服务器与CDH集群结合使用,Cloudera强烈推荐使用Cloudera Manager来安装和管理密钥托管服务器,以充分利用Cloudera Manager强大的部署、管理和监控功能。
安装EPEL存储库
依赖包可以通过Enterprise Linux (EPEL)存储库的额外包获得。要安装EPEL存储库,请安装epel-release
包:
复制epel-release-
的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
(仅限RHEL 7)启用额外存储库
密钥托管服务器需要python-flask
包。对于RHEL 6,这个包在EPEL存储库中提供。对于RHEL 7,它在RHEL extras
存储库中提供。要启用这个存储库,运行以下命令:
sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
安装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
.如果您有基本存储库的内部镜像,请针对您的环境更新正确的文件。
安装Cloudera存储库
添加您创建的内部存储库。有关更多信息,请参见配置主机以使用内部存储库。
通过运行以下命令导入GPG密钥:
sudo rpm --import http://repo.example.com/path/to/RPM-GPG-KEY-cloudera
安装CDH存储库
密钥托管服务器和密钥HSM依赖于bigtop-utils
包,它包含在CDH存储库中。有关添加CDH存储库的说明,请参见配置本地包存储库。
安装NTP
网络时间协议(NTP)服务同步系统时间。Cloudera建议使用NTP来确保系统日志、加密签名和其他可审计事件中的时间戳在系统之间保持一致。使用以下命令安装和启动NTP:
sudo yum install ntp
sudo service ntpd start
## For RHEL/CentOS 7, use 'sudo systemctl start ntpd' instead ##
安装密钥托管服务器
运行以下命令安装密钥托管服务器:
sudo yum install keytrustee-server
将服务配置为在开机自启动
确保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提供安全指南:
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加密和解密的速度。一些较新的处理器附带了AES-NI,它可以在每个服务器上启用。如果您不确定设备上是否有AES-NI可用,运行以下命令来验证:
grep -o aes /proc/cpuinfo
要确定是否加载了AES-NI内核模块,运行以下命令:
sudo lsmod | grep aesni
如果CPU支持AES-NI
,但没有加载内核模块,请参阅操作系统文档了解安装aesni-intel模块的说明。
Intel RDRAND指令集及其底层的数字随机数生成器(DRNG)对于生成加密协议的密钥不使用haveged
的情况非常有用。
要确定CPU是否支持RDRAND,运行以下命令:
grep -o rdrand /proc/cpuinfo
要启用RDRAND,请安装rng-tools
版本4或更高版本:
下载源代码
sudo wget http://downloads.sourceforge.net/project/gkernel/rng-tools/4/rng-tools-4.tar.gz
提取源代码:
tar xvfz rng-tools-4.tar.gz
进入rng-tools-4路径:
cd rng-tools-4
Run ./configure
Run make
Run make install
通过以下指令开始rngd
sudo rngd --no-tpm=1 -o /dev/random
在安装密钥受托人服务器之后,必须对其进行初始化,然后才能运行。详情请看:初始化独立密钥托管服务器或Cloudera Navigator密钥托管服务器的指令高可用性。
重要提示:在安装Cloudera Navigator密钥HSM之前,请参阅静态数据加密的来进行重要考虑。
Cloudera Navigator Key HSM是一个通用硬件安全模块(HSM)驱动程序,在目标HSM平台和Cloudera Navigator Key托管服务器之间进行转换。
使用Navigator密钥HSM,您可以使用密钥受托服务器安全地存储和检索加密密钥和其他安全对象,而不局限于基于硬件的平台。
您必须在密钥托管服务器所在的主机上安装密钥HSM。有关加密和密钥HSM要求的更多信息,请参见静态数据加密要求。
您必须创建一个内部存储库来安装或升级Cloudera Navigator密钥HSM。有关创建内部存储库(包括Cloudera Manager、CDH和Cloudera Navigator加密组件)的说明,请参见配置本地包存储库。
**重要提示:**如果您已经实现了密钥托管服务器的高可用性,请在每个密钥托管服务器主机上安装和配置密钥HSM。
下载密钥HSM压缩包并使用压缩包中的文件创建一个本地密钥HSM存储库。有关更多信息,请参见上面设置内部存储库。
添加在步骤1中创建的本地密钥HSM存储库。有关更多信息,请参见 Configuring a Local Package Repository
$ sudo rpm --import http://repo.example.com/path/to/RPM-GPG-KEY-cloudera
密钥托管服务器和密钥HSM依赖于bigtop-util
s包,它包含在CDH存储库中。有关添加CDH存储库的说明,请参见配置本地包存储库。
使用yum安装导航键HSM包
sudo yum Install keytrustee-keyhsm
默认情况下,Cloudera Navigator密钥HSM安装在/usr/share/keytrustee-server-keyhsm
目录中。
**重要提示:**按照这些说明安装所需的软件,将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加密组件)的说明,请参见如果您正在使用包裹,则配置本地包存储库;如果您正在使用包,则配置本地包存储库。
前往主机>包裹。
单击配置并将内部存储库添加到远程包裹存储库url部分。更多信息,请参见配置Cloudera管理器以使用内部远程包裹存储库。
下载、分发和激活密钥托管KMS包裹。有关使用包裹安装或升级组件的详细说明,请参阅管理包裹。
注意:Cloudera Manager中的
KEYTRUSTEE_SERVER
包裹不是Key Trustee KMS包裹;它是关键的托管服务器包。密钥受托人KMS的包裹名称为KEYTRUSTEE
。
keytrustee-keyprovider
包依赖于hadoop-kms
包,所以必须添加CDH存储库。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以使用密钥受托人服务器的说明,请参阅以下主题:
**重要提示:**按照这些说明安装所需的软件,将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软件和固件:
在执行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加密组件)的说明,请参见如果您正在使用包裹,则配置本地包存储库;如果您正在使用包,则配置本地包存储库。
前往主机>**;包裹**。
单击配置并将内部存储库添加到远程包裹存储库url部分。有关更多信息,请参见配置Cloudera管理器以使用内部远程包裹存储库。
下载、分发并激活Navigator HSM KMS包裹。有关使用包裹安装或升级组件的详细说明,请参阅管理包裹。
注意:Cloudera Manager中的KEYTRUSTEE_SERVER包裹不是Key Trustee KMS包裹;
它是关键的托管服务器包。Thales HMS支持的Navigator HSM KMS的包裹名称是KEYTRUSTEE
。
如果您正在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
keytrustee-keyprovider
包依赖于hadoop-kms
包,所以必须添加CDH存储库。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 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加密组件)的说明,请参见如果您正在使用包裹,则配置本地包裹存储库;如果您正在使用包,则配置本地包存储库。
前往主机>包裹。
单击配置并将内部存储库添加到远程包裹存储库url部分。有关更多信息,请参见配置Cloudera管理器以使用内部远程包裹存储库。
下载、分发并激活Navigator HSM KMS包裹。有关使用包裹安装或升级组件的详细说明,请参阅管理包裹。
注意:Cloudera Manager中的KEYTRUSTEE_SERVER
包裹不是Key Trustee KMS包裹;它是关键的托管服务器包。由Luna HSM支持的航海家HSM公里的包裹名称是KEYTRUSTEE
。
设置好内部存储库之后,配置Luna HSM主机支持的Navigator HSM KMS来使用存储库。有关更多信息,请参见配置主机以使用内部存储库。
因为keytrustee-keyprovider
包依赖于hadoop-kms
包,所以必须添加CDH存储库。有关说明,请参见配置本地包存储库。
使用适合您的操作系统的命令安装keytrustee-keyprovider
包:
**重要提示:**通过包安装时,请确保安装在希望运行HSM KMS服务的每台主机上。
RHEL-compatible
sudo yum install keytrustee-keyprovider
有关配置HSM KMS的说明,请参见使用向导启用HDFS加密
**重要提示:**在安装ClouderaNavigator 加密之前,请参阅“静止加密数据”和“ClouderaNavigator 加密兼容矩阵”,了解重要事项
有关加密和Navigator 加密要求的更多信息,请参见静态数据加密要求。
要安装或升级Navigator 加密,必须创建一个内部存储库。有关创建内部存储库(包括Cloudera Manager、CDH和Cloudera Navigator加密组件)的说明,请参见配置本地包存储库。
**注意:**有关受支持的Linux操作系统的详细信息,请参阅Cloudera Navigator加密兼容矩阵。
添加您创建的内部存储库。有关更多信息,请参见配置主机以使用内部存储库。
通过运行以下命令导入GPG密钥:
sudo rpm --import http://repo.example.com/path/to/gpg_gazzang.asc
依赖包可以通过Enterprise Linux (EPEL)存储库的额外包获得。要安装EPEL存储库,请安装epel -release
包:
复制epel-release-.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
要使Navigator 加密作为内核模块运行,必须下载并安装内核开发头文件。每个内核模块都是专门针对底层内核版本编译的。作为内核模块运行允许Navigator 加密,以向用户空间应用程序提供高性能和完全透明性。
要确定当前内核版本,请运行uname -r
。
要安装当前内核版本的开发头文件,请运行:
sudo yum install kernel-headers-$(uname -r) kernel-devel-$(uname -r)
对于具有Unbreakable Enterprise Kernel (UEK)的OL,运行:
sudo yum install kernel-uek-headers-$(uname -r) kernel-uek-devel-$(uname -r)
注意:对于UEK3,你不需要安装
kernel-uek-header -*
如果yum找不到这些包,它会显示如下错误:
Unable to locate package .
在这种情况下,执行以下操作之一以继续:
使用像RPM Pbone这样的工具找到并安装内核头文件包。
将内核升级到最新版本。如果升级内核,则必须在升级后重新启动,并从grub菜单中选择内核以使其处于活动状态。
(仅限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
安装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 加密内核模块设置。
添加您创建的内部存储库。有关更多信息,请参见配置主机以使用内部存储库。
通过运行以下命令导入GPG密钥:
sudo rpm --import http://repo.example.com/path/to/gpg_gazzang.asc
网络时间协议(NTP)服务同步系统时间。Cloudera建议使用NTP来确保系统日志、加密签名和其他可审计事件中的时间戳在系统之间保持一致。使用以下命令安装和启动NTP:
SLES 11
$ sudo zypper install ntp
# /etc/init.d/ntp start
SLES 12
$ sudo zypper install ntp
# service ntpd start
使用zypper
安装内核模块包(KMP)和Navigator 加密客户端:
sudo zypper install cloudera-navencryptfs-kmp-
sudo zypper install navencrypt
将default
、xen
和ec2
内核风格。
编辑/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
由于SLES 12中的更改,您必须在安装Navigator加密后运行以下命令:
sudo systemctl daemon-reload
添加您创建的内部存储库。有关更多信息,请参见配置主机以使用内部存储库。
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 -
安装NTP
网络时间协议(NTP)服务同步系统时间。Cloudera建议使用NTP来确保系统日志、加密签名和其他可审计事件中的时间戳在系统之间保持一致。使用以下命令安装和启动NTP:
sudo apt-get install ntp
sudo /etc/init.d/ntp start
安装内核头文件
通过运行uname -r
确定内核版本,并安装相应的头文件:
sudo apt-get install linux-headers-$(uname -r)
安装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
传输层安全(TLS)证书用于使用Navigator 加密来保护通信。Cloudera强烈建议使用由受信任证书颁发机构(CA)签署的证书。
如果TLS证书是由无法识别的CA(例如内部CA)签名的,那么您必须将根证书添加到每个Navigator 加密客户机的主机证书信任存储库中。请注意,Navigator加密使用操作系统的信任存储,这与Cloudera管理器使用的JDK信任存储不同。
在Navigator 加密客户端上设置TLS证书
如果还没有安装,请安装CA-certificates:
yum install ca-certificates
启用动态CA配置功能:
update-ca-trust enable
将根证书复制到主机证书信任存储库中
cp /path/to/root.pem /etc/pki/ca-trust/source/anchors/
更新主机证书信任存储
update-ca-trust
例子
[root@navencrypt-1 ~]# service navencrypt-mount stop
Stopping navencrypt directories
* Umounting /dev/nvtest/test1 ... [ OK ]
* Umounting /dev/nvtest/test2 ... [ OK ]
* Unloading module ... [ OK ]
[root@navencrypt-1 ~]# update-ca-trust enable
[root@navencrypt-1 ~]# cp dd-1.lab.usa.company.com.pem /etc/pki/ca-trust/source/anchors/
[root@navencrypt-1 ~]# update-ca-trust
[root@navencrypt-1 ~]# 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
包的版本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工具,则从源代码进行构建。
**注意:**如果包管理器只提供较旧的版本(3。x或更早),那么您必须从源代码构建。
要安装和启动rngd
并从源代码构建:
下载源代码:
sudo wget http://downloads.sourceforge.net/project/gkernel/rng-tools/4/rng-tools-4.tar.gz
提取源代码:
tar xvfz rng-tools-4.tar.gz
输入rng-tools-4目录:
cd rng-tools-4
运行. / configure
运行make
运行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
。
对RHEL兼容的系统:
sudo yum remove navencrypt
sudo yum remove navencrypt-kernel-module
这些命令会删除软件本身。在与rhell兼容的操作系统上,在卸载时不会删除/etc/navencrypt
目录。如果需要,手动删除它。
卸载导航器加密后,在安装Cloudera导航器加密时,重新执行您的发行版的安装说明。
当Navigator加密被卸载时,位于/etc/navencrypt
中的配置文件和目录不会被删除。因此,在重新安装期间不需要使用navencrypt register
命令。如果不再需要/etc/navencrypt
目录中以前的安装配置信息,可以删除其中的内容。