hadoop安全中的服务票证

2uluyalo  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(347)

我正在尝试使用kerberos保护hadoop集群。我能够使用kinit命令生成tgt。但除此之外,我是绊倒了。
1) 我想知道“服务票”在现实中是什么意思(不作为描述);使用哪个命令/代码可以使用服务票?
2) “.keytab”文件和“.keystore”文件有什么用?
hadoop kerberos故事
用户使用kinit命令向kdc发送身份验证请求。
kdc发回一个加密的票证。
用户通过提供密码来解密票据。
4现在通过身份验证,用户发送服务票证请求。
5kdc验证票证并发回服务票证。
用户将服务票证提交给hdfs@kerberos.com.
hdfs@kerberos.com 解密票证,验证用户的身份
第四步“申请服务票”;这到底是什么意思?为了得到tgt,我们使用'kinit'命令。同样,获得服务票的程序/方法是什么?
我的详细过程:
ldap:activedirectory
kerberos:安装在ubuntu中
hadoop集群:在ubuntu机器中配置一个主设备和一个从设备
ubuntu用户名:labuser
ubuntu中的领域:kerberos.com
计划是用kerberos和activedirectory提供hadoop安全性
在kerberos服务器计算机中为activedirectory中的用户生成了tgt(使用kinit命令)
接下来要将kerberos与ubuntuhadoop集群集成,请执行以下操作:,
1) 创建主体的命令:addprinc-randkey namenode/labuser@kerberos.com
2) 创建keytab的命令:xst-norandkey-k namenode.service.keytab namenode/labuser@kerberos.com(或)ktadd-k namenode.service.keytab namenode/labuser@kerberos.com
3) 在hadoop配置文件中添加了与kerberos对应的属性。
从hadoop集群开始,我们知道所有服务(namenode、datanode、resource manager和node manager)的登录都成功了。
日志info:info org.apache.hadoop.security.usergroupinformation:用户dn登录成功/labuser@kerberos.com 使用keytab文件*/home/labuser/hadoopc/etc/hadoop/dn.service.keytab
但是hadoop集群没有启动,在,
datanode(java.lang.runtimeexception:在没有特权资源的情况下无法启动安全群集)
namenode(java.io.filenotfoundexception:/home/labuser/.keystore(没有这样的文件或目录))
请建议上述kerberos进程是否需要更改?如果是,请说明理由

hfyxw5xn

hfyxw5xn1#

如果服务的协议启用了kerberos,kerberos api将自动获取服务票证。
服务器需要相应的密钥hdfs@kerberos.com 在keytab文件中,它可以读取该文件来解密任何传入的连接。通常,您可以使用kadmin命令来创建它,并使用适当的实用程序在keytab文件中安装secret(对于不同版本的kerberos源代码,这是不同的)
通常,一旦您将kinit作为客户机,您就不需要运行另一个explict kerberos命令来获取服务票证,前提是所有服务器和客户机都配置正确。这就是kerberos的要点。
如果您真的想获得服务票证进行测试,可以使用kvno命令。
http://web.mit.edu/kerberos/krb5-1.13/doc/user/user_commands/kvno.html

ghhkc1vu

ghhkc1vu2#

我找到了一个解决方案:
namenode(java.io.filenotfoundexception:/some/path/.keystore(没有这样的文件或目录))
尝试在hdfs-site.xml中配置仅http\ U选项:

<property>
 <name>dfs.http.policy</name>
 <value>HTTP_ONLY</value>
</property>

如果需要https,则需要另外生成证书并配置密钥库。

相关问题