知识库 : UDH安全配置手册 (V1.0.1)

Edit Document

UDH 安全 配置手册

(V 1.0.1)

目录

1.               Kerberos 简介

2.               UDH 启用安全系统

2.1.               安装 Kerberos 前准备

2.2.               安装 Kerberos

2.3.               配置安全

2.3.1.               启用安全

2.3.2.               创建 Principals 和 Keytabs

2.3.3.               应用安全

2.4.               服务检测

2.4.1.               运行服务检测

2.4.2.               HTTP Spnego 检测

3.               UDH 禁用安全系统

1.     Kerberos 简介

“ Kerberos 是一种在 不可信网络 上对 可信任主机 之间的认证协议”, 即 在开放、不安全的网络上,主机之间的通信可能被拦截, Kerberos 协议用于在这样的网络上提供可靠的认证服务。但如果使用的计算机很容易受到攻击, Kerberos 则无法提供任何保证:认证服务器、应用服务器( imap, pop, smtp, telnet, ftp, ssh , AFS, lpr, ... )、客户端必须保持密码的周期性更新,以保证请求服务的用户和服务提供者之间的正确认证。

例如,如果某人获取了一台机器的特许访问权限,可以复制包含密钥的文件,则 Kerberos 的认证策略就失去用途了。侵入者可以复制密钥文件到另一台机器上,设置相同的 DNS 和 IP ,认证服务器会认为它就是真正的客户端。

2.     UDH 启用 安全系统

2.1.     安装Kerberos前 准备

在 UDH 环境下安装 Kerberos 需要 注意 :

         NameNode 与 DataNode 分开 安装

         SNameNode 与 DataNode 分开 安装

         NameNode 与 SNameNode 分开 安装

         ResouceManager 与 NodeManager 分开 安装

即 上述 各 条中的组件不 能 同时安装在一个节点上 ( NameNode 可 与 ResouceManager 安装于 同一节点) , 否则容易造成启用安全 后 ,服务无法启 动 。

 

安装 配置好 UDH 后 , 若需要启用 安全 系统,需要经历 以下三 个步骤:安装 kerberos , 配置 UDH 安全, 运行服务 检测 。

2.2.     安装Kerberos

UDH 提供 Kerberos 的 自动安装脚本 : kerberos_install.sh 。该 脚本 在 执行的服务器上安 装 KDC , 即 krb5-server 。

在 脚本路径下执行:

# bash ./ kerberos_install.sh

    将 出现以下 提示 信息:

>>Please   use   uppercase   enter   default_realm   eg:YONYOU.COM: YONYOU.COM

 

>>Please   enter   kadmin's   passwd:

 

>>Please   confirm   the   script   execute   on   udh   manager-server?   [Y/N]:

 

安装 过程中按提示输入即可。

 

这里 , 脚本 支持 KDC 两种 安装 方式 :

1 、     UDH Manager 机器上部署

即在 安装 UDH 的 集群 内 的一台机器上执行 kerberos_install.sh 脚本, 并 在 Please   confirm   the   script   execute   on   udh   manager-server?   [Y/N]: 步骤 选择 Y , 说明将在 安装 UDH 的 集群中部署 kerberos , 部署范围 涉及 整个集群。

             

2 、     UDH 集群外独立机器上部署

即在 安装 UDH 的 集群外的一台机器上执行 kerberos_install.sh 脚本, 并 在 Please   confirm   the   script   execute   on   udh   manager-server?   [Y/N]: 步骤 选择 N , 说明将 在 UDH 集群外机器上安装 KDC ,在 UDH 集群内的机器上安装 client, 部署范围 涉及执行 脚本的 服务器 中 /etc/hosts 下 的所有 域内 机器 ( @ yonyou.com )。              

2.3.     配置 安全

安装 配置好 Kerberos 后, 在管理菜单里选择“安全”,点击“启用安全系统”。

2.3.1. 启用安全

1 、     指定 Kerberos 的 Realm 域:本例中设置为 YONYOU.COM ;

2 、(可选)修改各服务的 Principal 名称及 Keytab 文件的存储位置,建议保持原值;

 

D:\Since-05-09\Ambari\QQ截图20140925103504.png

2.3.2. 创建Principals和Keytabs

导出用于生成 Principal 及 Keytab 的 CSV 文件,上传到 KDC 所在的服务器。因为 KDC 要生成 Keytab 文件,并分发到各客户端,也就是 Hadoop 集群里的每一台机器上,所以要保证 KDC 可以无密码访问这些客户端。在 UDH 中,我们的策略是将 KDC 部署在集群的主节点( master )上面,这样就可以方便的生成 Principal 并将相应的 Keytab 文件分发送到各从节点。同时,启用了安全认证的集群里每个服务都需要进行安全配置,所以我们统一生成配置文件,并在下面的步骤里重启整个集群。

 

D:\Since-05-09\Ambari\QQ截图20140925103629.png

 

在 CSV 上传到 KDC ( UDH 主节点)之后,执行以下命令,系统将生成所有的 Principal 及 Keytab 文件,并分发到相应的 Kerberos 客户端上。其中,各客户端上 Keytab 文件存放的路径与步骤 1 中配置服务页面中的 Keytab 文件路径一致。

/var/lib/ambari-server/resources/scripts/kerberos-setup.sh /root/tools/host-principal-keytab-list.c sv /root/.ssh/

其中参数 ’ host-principal-keytab-list.c sv ’ 是我们导出的 CSV 文件,参数 ’ /root/.ssh/ ’ 是 SSH 目录,系统要读取该目录下的密钥。

 

注意 ,必须先 下载 CSV ,生成 Principal 及 Keytab 文件之后,才可以点击 应用 按钮,否则系统将无法启动!

2.3.3. 应用 安全

点击页面的‘应用’按钮,系统将停止所有服务,并在应用所有服务的安全配置后,重新启动所有服务,集群进入安全系统运行模式。这个过程可能用时较长,通常要十几分钟或更长时间,请耐心等待,不要在部署过程中点击确定(或者是同意)按钮。

2.4.     服务检测

启用 安全后, 在各 服务的 “配置”界面中, 非 log4j .properties 的“自定义配置 文件 ”下 ,都 显示 了该服务 安全 相关的配置项 , 可进行查看 。

2.4.1. 运行服务 检测

各 服务界面右上角 处有“服务 操作 ”按钮 ,点击下拉菜单中的 “运行 服务 检测”可 执行该服务 的 安全验证脚本, 运行 成功意味着该服务在安全模式下 可 正常 运行 。

2.4.2. HTTP Spnego 检测

基本上 需要网页访问的服务都需要进行 HTTP Spnego 验证

1 、各 节点执行 kinit( 使用 具体的主机名和域名替代 {{hostname@REALM}} ):

kinit –k –t /etc/security/keytabs/spnego.service.keytab HTTP/ {{hostname@REALM}}

 

2 、安装 VNC

yum install tigervnc

yum install tigervnc-server

vncserver :18

 

3 、     下载 VNC Viewer 并安装 。打开 VNC Viewer ,安装 Firefox ,输入:

yum install firefox

 

4 、     在 VNC Viewer 中打开 Firefox ,进行如下配置:

         在地址栏输入‘ about:config ’,回车;

         在过滤器内输入过滤条件‘ network.negotiate-auth.trusted-uris ’;

         双击条目,在输入框内输入要访问的主机列表,主机之间以逗号分隔‘ hostname1.yonyou.com, hostname2.yonyou.com, hostname3.yonyou.com, hostname 4.yonyou.com ’

 

5 、     打开 HDFS 页面,例如 : http:// hostname 1 .yonyou.com: 50070

如果提示需要进行 HTTP 认证,在 dev1 上执行如下命令:

kinit -k -t /etc/security/keytabs/spnego.service.keytab HTTP/ hostname 1.yonyou.com@YONYOU.COM

 

注意 :测试过程中需要 针对 不同的服务设置 用户 :

如 HDFS 需要:

kinit -k -t /etc/security/keytabs/hdfs.headless.keytab hdfs/hostname1.yonyou.com@YONYOU.COM 或

kinit -k -t /etc/security/keytabs/hdfs.headless.keytab hdfs@YONYOU.COM

3.     UDH 禁用 安全系统

UDH 禁用安全系统 比 启用 操作更为 简单, 只 需 在管理菜单里选择“安全”,点击“禁用安全系统”即可。

Attachments:

UDH安全配置指南(UDH v1.0.1).docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)