知识库 : 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)