由于安全原因,需要对HDFS UI等端口进行限制访问,也就是配置kerberos认证,在core-site.xml文件中进行如下配置: <property> <name>hadoop.http.authentication.type </name> <value>kerberos</value> </property> 此时访问hdfs的50070端口,会出现如下 但是进行了上述配置之后,同样也将组件的JMX信息也进行了限制 ,必须使用kerberos认证才可访问。 下文记录如何在Java代码中进行kerberos认证进而通过HttpURLConnection获取HDFS JMX等信息。
Kerberos协议: Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting 条件 先来看看Kerberos协议的前提条件: 如下图所示,Client与KDC, KDC与Service 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos 过程 Kerberos协议分为两个部分: 1 . Kerberos协议的重点在于第二部分,简介如下: ? 1. 推荐资料: Kerberos的原理 Kerberos: An Authentication Service for Computer Networks Web Services Security系列文章
、《Kerberos基本概念及原理汇总》、《基于ambari的Kerberos安装配置》、《Windows本地安装配置Kerberos客户端》,已经成功安装了Kerberos KDC server,也在 关于Kerberos的一些基础概念,可以戳《Kerberos基本概念及原理汇总》了解。 如果使用各服务的话,就需要进行Kerberos认证了。 准确的说,是开启了kerberos认证的组件都必须先kinit后才可以使用,具体权限取决于组件本身的授权机制(ACL/Sentry等) 二、访问Kerberos数据库查看principal 1. 1.2 使用HDFS HDFS服务组件本身有着严格的文件权限控制,如果操作不当,很容易出现Permission denied的错误。 chown lyz:lyz /lyz 关闭HDFS文件权限设置 Web UI --> HDFS配置 --> 搜索dfs.permissions.enabled,将其值改为false,保存配置,并重启HDFS组件才可生效
Kerberos安装配置 https://www.psvmc.cn/article/2022-11-08-bigdata-kerberos-centos.html Flink任务认证 flink on yarn flink run \ -yD security.kerberos.login.keytab=/root/psvmc.keytab \ -yD security.kerberos.login.principal 基于以上原理,当自定义RichSinkFunction里需要是使用基于kerberos认证的组件时,不需要再做认证操作。 配置文件,从服务上获取 private static final String krbConfig = "krb5.conf"; // kerberos认证文件 private 认证后,JDBC连接要进行kerberos认证。
Hadoop Kerberos 提交YARN任务失败 diagnostics: Application application_1542706493784_0005 failed 2 times due
:Kerberos 5 release 1.15.1本博客参考的博客是:① Openldap安装部署② Kerberos基本原理、安装部署及用法③ Openldap集成Kerberos注意:这个文章是真实可行的 @NODE3.COM"说明:这一步的作用就是给kerberos创建个ldapadmin账户,它具有ldap的管理员权限,你就理解为kerberos想操作ldap,那么ldap你得给kerberos一个身份啊 ,把dn: cn={12}kerberos改为dn: cn={13}kerberos,cn=schema,cn=config,把cn: {12}kerberos改为cn: {13}kerberos注:这里的 cn={13}kerberos是因为schema_convert.conf文件里面kerberos排行13,故kerberos是作为第13个导入到openldap里面的。 2.2.8验证kerberos+ldap集成通过kadmin命令行增加一个principal,在kerberos显示成功。在ldap客户端通过kerberos验证显示成功。
在本篇文章中,我们将对 Kerberos 协议与 Kerberos 认证原理分模块进行详细的讲解,为下篇文章中讲解 Kerberos 认证原理的安全问题做下铺垫。 Kerberos 协议在在内网域渗透领域中至关重要,白银票据、黄金票据、攻击域控等都离不开 Kerberos 协议。 为了让阁下能够更轻松地理解后文对认证原理的讲解,你需要先了解以下几个关键角色: 角色 作用 Domain Controller 域控制器,简称DC,一台计算机,实现用户、计算机的统一管理。 Kerberos 认证中的相关安全问题概述 Kerberos 认证并不是天衣无缝的,这其中也会有各种漏洞能够被我们利用,比如我们常说的 MS14-068、黄金票据、白银票据等就是基于Kerberos协议进行攻击的 本节中我们对 Kerberos 协议与 Kerberos 认证原理分模块进行详细的讲解。在下篇文章,我们将详细的讲解 Kerberos 认证原理的安全问题并演示相关的攻击过程。
github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了《如何在CDH中启用Spark Thrift》和《如何在Kerberos 环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端》,本篇文章Fayson主要介绍如何使用Java JDBC连接非Kerberos和Kerberos环境下Spark ThriftServer 内容概述 1.环境准备 2.非Kerberos及Kerberos环境连接示例 测试环境 1.Kerberos和非Kerberos集群CDH5.12.1,OS为Redhat7.2 前置条件 1.Spark1.6 4.Kerberos环境示例 ---- 连接Kerberos环境下的Spark1.6 ThriftServer需要准备krb5.conf文件及keytab文件。 hive,否则在执行查询的时候会出现访问HDFS文件权限问题 访问Kerberos环境下的Spark ThriftServer需要在运行环境中增加Kerberos的环境
域认证角色 Kerberos认证的3个角色: Client Server KDC(Key Distribution Center)分为两个部分: AS(Authentication Server)认证服务器 ::list # 列出票据 $ kerberos::purge # 清除票据 服务注释 服务名 WMI HOST、RPCSS Powershell Remoteing HOST、HTTP WinRM PAC主要是规定服务器将票据发送给Kerberos服务,由Kerberos服务来验证票据是否有效 开启方式:将注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\Lsa\Kerberos\Parameters中的ValidateKdcPacSignature设为1 黄金票据 Kerberos认证第2步中的TGT 简介 黄金票据可以在拥有普通域用户权限和 # 清空票据缓存 kerberos::purge # 列出票据,显示为空 kerberos::list # 加载生成的票据 kerberos::ptt administrator.kiribi #
什么是Kerberos Kerberos是一种由MIT(麻省理工学院)提出的一种网络身份验证协议,可通过密钥系统为客户端/服务端提供认证服务。 Kerberos组成 Kerberos协议中存在三个角色,在整个认证过程中,三个角色缺一不可: 客户端(Client):访问服务的一方 服务端(Server):提供服务的一方 密钥分发中心(Key Distribution 至此Kerberos认证完成,通信双方确认身份后便可以进行网络通信 NTLM与Kerberos的区别 NTLM和Kerberos协议都是基于对称密钥加密策略,并且都是强大的相关身份验证系统 主要区别如下 : 1.NTLM和Kerberos的主要区别在于前者是基于挑战/响应的身份验证协议,而后者是基于票据的身份验证协议 2.Kerberos的安全性高于NTLM 3.Kerberos提供了相互身份验证功能, NTLM不支持 4.Kerberos支持委派和模拟,NTLM仅支持模拟 5.NTLM协议下的身份验证过程涉及客户端和服务器,Kerberos写一下可靠的第三方对身份验证过程是保密的 PAC 在Kerberos
在Hadoop集群内提供身份认证最佳和可接受的方式是使用Kerberos。Kerberos提供了强大的身份验证功能,但是它的复杂性也让很多集群管理员心生畏惧。 而开发者在调用Hadoop生态组件的API或者向YARN提交任务时,需要在代码中添加Kerberos访问机制,如果不是对在数据安全极其苛刻的条件下,启用Kerberos对管理员和开发人员都是一种很大的负担 本文主要讲解如何在CDH7.1.1集群中禁用Kerberos。 配置 修改Hadoop的安全身份验证 修改DataNode的数据目录权限为755 修改DataNode的如下端口 4.修改HBase的Kerberos配置 5.Hue服务修改 删除Hue实例中的 “Kerberos Ticket Renewer”服务 6.修改Kafka的Kerberos配置 7.修改Atlas的Kerberos配置 8.修改Solr的Kerberos配置 9.修改Flink的Kerberos配置
欢迎关注我的微信公众号《壳中之魂》 Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议。它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证。 Kerberos 主要是用在域环境下的身份认证协议。 名词解释 DC(Domain Controller):域控制器,简称DC,一台计算机,实现用户、计算机的统一管理。 整个认证过程其实最主要就是两部分 一是DC需要知道提交内容的人是否是Cilent;二是Client需要知道发放内容的人是否是DC,这个过程有点像CSRF的防御,都需要一个黑客无法伪造的内容,然而,这个内容并非完全安全,所以Kerberos
导致这个漏洞产生的原因就是在用户向KDC(Kerberos密钥分发中心)申请TGT(由票据授权服务产生的用来证明身份的凭证)时,可以伪造自己的Kerberos Ticket(Kerberos票据),该Ticket 使用方法: python goldenPac.py 域名称/域成员用户:域成员用户密码@域控制器地址 (1)依赖环境准备,安装kerberos客户端 Kali中默认未包含kerberos客户端,首先安装它 use auxiliary/admin/kerberos/ms14_068_kerberos_checksum 列出该脚本所需选项,如图6-58所示。 在/root/.msf4/loot目录下生成了一个名为 kerberos::clist“20180715230259_default_172.16.86.130_windows.kerberos_839172 kerberos::clist ”20180715230259_default_172.16.86.130_windows.kerberos_839172.bin” /export 图6-60 格式转换
Kerberos principal 每个需要对Kerberos进行身份验证的用户和服务都需要一个 principal,即一个实体,该实体在可能有多个Kerberos服务器和相关子系统的上下文中唯一标识该用户或服务 对于服务角色实例标识,主要名称是Hadoop守护程序(hdfs, mapred等)使用的Unix帐户名,后跟一个实例名称,该名称标识运行该服务的特定主机。 实例名称还可以标识具有特殊角色的用户,例如管理员。 例如,在具有每个地理位置领域的组织中的集群上运行的HDFS服务角色实例的principal可能如下: hdfs/hostname.fqdn.example.com@OAKLAND.EXAMPLE.COM 通常,服务名称是给定服务角色实例使用的Unix帐户名称,例如 hdfs或mapred,如上所示。
本文将对两种重要的机制进行详细的讨论:GSSAPI和Kerberos。 什么是GSSAPI? 什么是Kerberos? Kerberos是一个网络身份验证协议,它允许在非安全网络上进行安全的身份验证。 Kerberos使用了一种称为“票据”的机制,用户需要首先从Kerberos服务器获取这种票据,然后才能使用网络服务。 GSSAPI和Kerberos的关系 虽然GSSAPI和Kerberos都是用于身份验证的机制,但它们的关系更加复杂。实际上,Kerberos是一种可以通过GSSAPI接口访问的身份验证机制。 而Kerberos则是一种强大且安全的网络身份验证协议,它可以通过GSSAPI接口进行访问。 尽管使用GSSAPI和Kerberos可以为应用程序提供安全的身份验证,但它们也有一些局限性。
当用户通过身份验证时,用户所属的每个安全组的 SID 以及用户 SID 历史记录中的任何 SID 都将添加到用户的 Kerberos 票证中。 Kerberos Golden Ticket 是有效的 TGT Kerberos 票证,因为它由 域 Kerberos 帐户 (KRBTGT)加密/签名。 由于 Mimikatz 通过相对标识符 (RID) 将组成员身份添加到票证中,因此在 Kerberos 票证中将 519(企业管理员)RID 标识为在其中创建它的域的本地(基于 KRBTGT 帐户域)。 如果通过获取域 SID 并附加 RID 创建的域安全标识符 (SID) 不存在,则 Kerberos 票证的持有者不会获得该级别的访问权限。 为了支持我对如何在 Kerberos 票证中使用 SID 历史记录跨信任(森林内和外部)扩展访问权限的研究,我在 6 月下旬联系了 Benjamin Delpy 并请求添加 SID 历史记录。
Kerberos 是一种网络认证协议,是通过密钥系统为客户机/服务器应用程序 提供认证服务。 Kerberos协议中的角色 在Kerberos协议中,存在三个主要角色: 客户端(Client):发送请求的一方。 服务端(Server):接受请求的一方。 当然和火车票不同的是 Kerberos 中有两张票据,而火车票只有一张。 Windows域中使用kerberos协议过程中,为了让服务器判断Client是否有权限访问服务,微软在Windows平台上对Kerberos协议进行了一些扩充,即在协议中增加了PAC(Privilege 利用工具 Pykek:Pykek是一个利用Kerberos协议进行攻击的工具包,可以生成高权限的Kerberos票据。结合mimikatz等工具,攻击者可以将票据注入到内存中,从而提升权限。
)为了帮助人们理解Kerberos的原理而写的一篇对话集。 而我是希腊人,它是一条希腊的看门狗,它的名字是”Kerberos“,”Kerberos“是‘K’打头的。 Euripides: 好吧,好吧,别发火。我同意这个名字。实际上,它有一个好的脖环。 再见吧,Charon,欢迎你,Kerberos. 后记 这篇对话是于1988年写的,是为了帮助读者理解Kerberos V4的运行方式。经过了这么多年,它仍然非常好的服务于此。 当我把这篇文章转换成HTML的时候,我惊讶的发现这个文档对Kerberos V5仍然非常有用。虽然很多东西改变了,但核心概念并没有变。实际上,Kerberos V5对Kerberos只做了两处改变。 希望你能对这篇介绍Kerberos协议的文章感兴趣。祝愿你在未来的探索中更进一步。 ---- 更多精彩干货内容,请您关注微信公众号实时查看
HDP WARN ipc.Client: Exception encountered while connecting to the server : org.apache.hadoop.securi KERBEROS 测试验证: # 当前kdc.conf配置 [dengsc@nfjd-hadoop02-node179 ~]$ sudo grep supported_enctypes /var/kerberos/krb5kdc (des-cbc-md5) # 修改kdc.conf [dengsc@nfjd-hadoop02-node179 ~]$ sudo grep supported_enctypes /var/kerberos blog.csdn.net/weixin_44904163/article/details/122825185 https://www.jianshu.com/p/5d4cdfe7c592 Flink 源码之 安全认证 kerberos
当前用户是baogang2 principal=hive/baogang2@TDH指的是在baogang2的权限下使用hive 问题二 尝试写一个访问kerberos安全的hdfs根目录的java程序 (file.getPath()); } } return null; } }); } 问题三 kerberos