0

我的帖子

个人中心

设置

  发新话题


hadoop安全目录:
  • kerberos(已发布)
  • elasticsearch
  • knox
  • oozie
  • ranger
  • apache sentry

简介:
从运维青铜到运维白银再到运维黄金,这里就要牵扯到方向问题也就是装备,根据自己的爱好,每个人都应该选择一个适合自己和喜欢自己的一个职业技术方向,如:大数据安全,开发运维,云计算运维等等。而掌握的越多前言技术也就是更多的装备,才能更好的在it行业混下去,毕竟it技术更新太快,初级篇和中级篇前面已介绍。
初级篇:详解Linux运维工程师入门必备技能(青铜)
详解Linux运维工程师打怪升级篇(白银)

现在给大家介绍大数据安全的正式面目:
1.大数据基本组件


2. Hadoop安全背景
 共享集群
 按照业务或应用的规则划分资源队列,并分配给特定用户
 HDFS上存放各种数据,包括公共的、机密的
 安全认证:确保某个用户是自己声称的那个用户
 安全授权:确保某个用户只能做他允许的那些操作

3. 设备说明

4. kerberos基本概念:
 KDC(key distribution center ) : 是一个网络服务,提供ticket 和临时会话密钥
 AS (Authentication Server): 认证服务器
 TGT:Ticket-granting Ticket

5. kerberos认证过程:




6. 集群启用Kerberos认证
装KDC Server
1. 安装一个新的KDC Server(任意一个集群主机,这里hdp141为例)[attach]353274[/attach]

2. 打开KDC Server的配置文件
# vi /etc/krb5.conf
修改文件中的[realms]部分,将为属性kdc和admin_server设置的默认值“kerberos.example.com”替换成实际KDC server的主机名。在下面的例子中,“kerberos.example.com”被替换成了 “my.kdc.server”。

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所在路径


开始实测:

用户
普通用户需要安装ranger(后面介绍)管理权限。
列出所有用户
[attach]353304[/attach]

创建测试用户


登录验证
# kinit test  #登陆
ceshi123456.

退出登陆状态
[attach]353307[/attach]
集群登录与授权(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下的作业提交
1.指定spark用户和密码



上传spark文件到opt


#spark测试文件


spark命令提交任务







疑难问题1:


解决:


疑难问题2:


解决:


参考:
http://blog.csdn.net/wulantian/article/details/42418231
http://book.51cto.com/art/200907/140533.htm



实战到此结束。后续再更新elasticsearcn安全实战。

总结:
1. Hadoop集群节点数多,配置和维护一个使用kerberos系统高性能,稳定的hadoop集群难度非常高。
2. Hadoop中的hdfs是一个文件系统,用户的认证和授权比较复杂,难度不低于linux系统的用户和组管理。
加上kerberos后,用户和用户组的管理更加复杂,通常一个合适的用户不能访问hdfs上的文件。
3. Hadoop加上kerberos后,通常原来的用户和文件,可能都失效导致数据流失。



格式就是编辑不好头痛!



技术在于交流,欢迎参观博客 [http://http://blog.51cto.com/chenhao6]
提示: 作者被禁止或删除 内容自动屏蔽



51CTO论坛有移动端啦,发帖回帖更方便~
我应该怎么夸你,你才不会骄傲?



大牛 求带








牛牛




顶下  很不错的东西



实用,厉害啦



51CTO论坛有移动端啦!扫码下载体验就送月会员哦!
虽然大学学着块,但是目前看了下表示头晕~~!!



‹‹ 上一贴:nginx的error_log不能使用自定义格式么?   |   下一贴:centos5配置IP地址请教 ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2018 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com