OAuth2 vs SAML vs RADIUS二、报错完整错误Cannot locate KDCjavax.security.auth.login.LoginException: Cannot locate KDC in this directory as wellincludedir /etc/krb5.conf.d/[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin\_server = FILE:/var/log/kadmind.log[libdefaults] dns\_lookup\_realm = kdc.node.com # admin\_server = kdc.node.com kdc = 10.110.38.162 admin\_server = 10.110.38.162 ldap \_servers = ldap://10.110.38.162:389 # kdc = node3.com:88 # admin\_server = node3.com:749 # default\_
WIN系统&AD域控&NetLogon&ADCS&PAC&KDC&CVE漏洞 WIN-域控提权-CVE-2014-6324 WIN-域控提权-CVE-2020-1472 WIN-域控提权-CVE-2021
IPC,WMI,SMB,PTH,PTK,PTT,SPN,WinRM,WinRS,RDP,Plink,DCOM,SSH;Exchange,LLMNR投毒,Kerberos_TGS,GPO&DACL,域控提权漏洞,约束委派,数据库攻防,系统补丁下发执行,EDR定向下发执行等。
文章概述 1.环境描述 2.安装新的KDC服务和迁移原KDC数据 3.CM修改Kerberos配置 测试环境 1.CM和CDH5.15.0 2.现有集群操作系统RedHat7.4 3.新Kerberos KDC和Kadmin 目标KDC服务器 IP HOSTNAME 服务 172.31.11.138 ip-172-31-11-138.ap-southeast-1.compute.internal KDC 和Kadmin 3.安装新的Kerberos服务 ---- 1.选择Redhat6服务作为KDC服务器,执行如下命令安装KDC和KAdmin服务 [root@ip-172-31-11-138 ~]# 4.修改kdc.conf文件,内容如下: [root@ip-172-31-11-138 ~]# vim /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports 2.点击“配置”,进入Kerberos配置界面,在配置界面搜索“Server”,将KDC和KDC Admin Server的主机修改为我们新部署的Kerberos节点 ?
如何为CDH集成Active Directory的Kerberos认证》和《如何在CDH集群启用Kerberos》介绍了集成不同服务的Kerberos认证,本篇文章Fayson主要介绍如何将CDH集成的KDC
前言 我们已经安装好了我们kwdb数据库,并且通过命令行已经连接成功,那么接下来就是各种写SQL的操作测试,这里为了初学者方便我就搞了一下可视化的操作,在社区的群里我问到了KDC的工具,本文就是对这个工具的一个评测过程 前置环境配置文章:https://blog.itpub.net/70045375/viewspace-3079855/ kwdb/releases地址:kwdb 发行版 - Gitee.com KDC下载链接 :KaiwuDB_Developer_Center-2.0.4-win-x86_64.zip 安装与连接KDC 这部分是演示解压安装与连接KDC的操作,我这里使用的windows版本的。 1、解压安装KDC 给的是zip的包,所以win的系统能直接解压。 解压内容: 2、连接KDC 我们已经有了KDC服务,那么接下来进行连接即可。 2020'; 刷新权限 grant admin to inspur ; 2.2、使用KDC连接inspur用户 如果连接不上请到服务器上看26257端口号是否开放。 确认开放后也就肯定能连接上了。
条件 先来看看Kerberos协议的前提条件: 如下图所示,Client与KDC, KDC与Service 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket), 并用协议开始前Client与KDC之间的密钥将 此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。 (此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式) 2. 此时KDC将刚才的Ticket转发给Client。 由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDC与Service之间的密钥将Ticket加密后再发送给Client。
/krb5kdc/ ? 3.在备节点的/var/kerberos/krb5kdc目录下查看 [root@cdh3 krb5kdc]# cd /var/kerberos/krb5kdc [root@cdh3 krb5kdc]# 6 节点数据同步至备节点 1.在备节点上测试同步过来的数据是否能启动Kerberos服务 启动krb5kdc服务 [root@cdh3 krb5kdc]# systemctl start krb5kdc [root@cdh3 krb5kdc]# systemctl status krb5kdc ? 3. kill主服务的krb5kdc服务和kadmin 服务进行验证 [root@cdh4 krb5kdc]# ps -ef | grep krb5 [root@cdh4 krb5kdc]# kill
3.采用root用户进行操作 2.KDC服务安装及配置 ---- 本文档中将KDC服务安装在Cloudera Manager Server所在服务器上(KDC服务可根据自己需要安装在其他服务器) 1. 4.修改/var/kerberos/krb5kdc/kdc.conf配置 [root@ip-172-31-6-83 ~]# vim /var/kerberos/krb5kdc/kdc.conf [root @ip-172-31-6-83 ~]# cat /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = Enter KDC database master key: Re-enter KDC database master key to verify: (可左右滑动) ? 5.点击“继续”,配置相关的KDC信息,包括类型、KDC服务器、KDC Realm、加密类型以及待创建的Service Principal(hdfs,yarn,,hbase,hive等)的更新生命期等
3.3节提出的MaskCentroid代表了KDC的第二个核心创新。 整体而言,KDC的技术方法展现了算法设计的创新性与系统性。 在关键点检测方面,表1展示了KDC在COCO test-dev集上的卓越表现。 这种全面的性能提升验证了KDC设计的有效性,也表明其具备良好的泛化能力。结论中提到的"无需人物检测器"和"避免像素级聚类的可扩展性问题"等特点,更是凸显了KDC在实际应用中的潜在价值。 这些局限并非KDC特有的问题,而是反映了整个领域面临的挑战,也为后续研究指明了潜在突破口。 展望未来,KDC的研究开辟了多个有价值的探索方向。
/krb5kdc/kpropd.acl配置文件中添加对应账户,如果配置文件不存在则新增 [root@cdh2 krb5kdc]# vim /var/kerberos/krb5kdc/kpropd.aclhost 服务 [root@cdh2 krb5kdc]# systemctl start krb5kdc[root@cdh2 krb5kdc]# systemctl status krb5kdc 5.在备节点上验证 --color=auto krb5kdc[root@cdh1 krb5kdc]# kill -9 13391[root@cdh1 krb5kdc]# ps -ef|grep kadminroot 和kadmin服务宕掉一个后,是否会影响正在运行的集群作业 1.在主启动kdc和kadmin服务,备节点启动kdc [root@cdh1 krb5kdc]# systemctl start krb5kdc [root@cdh1 krb5kdc]# systemctl start kadmin[root@cdh1 krb5kdc]# systemctl status krb5kdc[root@cdh1 krb5kdc
/* [ec2-user@ip-172-31-21-45 kerberos]$ cd /var/kerberos/krb5kdc/ [ec2-user@ip-172-31-21-45 krb5kdc]$ 3.在备节点的/var/kerberos/krb5kdc目录下查看 [ec2-user@ip-172-31-21-45 krb5kdc]$ pwd /var/kerberos/krb5kdc [ec2- /krb5kdc/kpropd.acl/var/kerberos/krb5kdc/kpropd.acl.bak [ec2-user@ip-172-31-21-45 krb5kdc]$sudo systemctl -31-21-45 krb5kdc$ ec2-user@ip-172-31-21-45 krb5kdc$sudo mv /var/kerberos/krb5kdc/kpropd.acl.bak kpropd.acl ---- 1.编写同步脚本 ec2-user@ip-172-31-22-86 krb5kdc$pwd /var/kerberos/krb5kdc ec2-user@ip-172-31-22-86 krb5kdc
我们现在来看看Client是如何从KDC处获得TGT的:首先Client向KDC发起对TGT的申请,申请的内容大致可以这样表示:“我需要一张TGT用以申请获取用以访问所有Server的Ticket”。 KDC在收到该申请请求后,生成一个用于该Client和KDC进行安全通信的Session Key(SKDC-Client)。 最后KDC将这两份Copy一并发送给Client。 当Client收到KDC的两个加密数据包之后,先使用自己的Master Key对第一个Copy进行解密,从而获得KDC和Client的Session Key(SKDC-Client),并把该Session 随后连同TGT一并发送给KDC。
本地的MIT KDC 此方法使用集群本地的MIT KDC。用户和服务可以与本地的KDC进行身份验证,然后才能与集群上的CDH组件进行交互。 架构摘要 MIT KDC和单独的Kerberos领域部署到CDH集群本地。本地的MIT KDC通常部署在实用程序主机上。为了获得高可用性,其他复制的MIT KDC是可选的。 必须在本地MIT KDC中创建用户和服务主体,这可能会很耗时。 本地的MIT KDC可能是集群的单点故障,除非可以配置成复制的KDC,使其具有高可用性。 本地MIT KDC是另一个要管理的身份验证系统。 具有Active Directory集成的本地MIT KDC 此方法使用集群本地的MIT KDC和Kerberos领域。 本地MIT KDC可以是集群的单点故障(SPOF)。可以将复制的KDC配置为具有高可用性。
客户端向 KDC 请求用户的票证,并使用用户的密码对请求进行加密。如果 KDC 可以使用其存储的用户密码解密请求,则它知道客户端已为用户提供了正确的密码。 一旦用户通过 KDC 的身份验证,其他服务(如 Intranet 站点或文件共享)就不需要该用户的密码。KDC 负责颁发每个服务信任的票证。 KDC中包含一个叫做TGS(票据授予中心)的组件,我们便可以理解为他就是一个发放身份认证票据的服务中心,在KDC认证了(其实是KDC中的AS认证的)客户端的身份后,他会给客户端发放用于访问网络服务的服务授予票据 由于整个kerberos通信过程都采用对称加密的方式,密钥的获取也是从KDC中得到,所以KDC叫做密钥分发中心。 ; ② 客户端将自己想要访问的Server服务以明文的方式发送给KDC; ③ 客户端将使用TGS密钥加密的TGT也原封不动的也携带给KDC; TGS行为: ① 此时KDC中的TGS(票据授予服务器)收到了来自客户端的请求
对称密钥的自动分配 我们上面说到了,对称密钥的一种分配方式是设立 密钥分配中心 KDC(Key Distribution Center) ,KDC 是一个权威的密钥分配中心,他能解决密钥数量日趋增大的问题 KDC 的主要作用就是给需要通信的用户临时分配一个会话密钥,这个会话密钥的生命周期在会话开始时结束,会话结束时失效。 比如下面这个 KDC 的分配示例: A 和 B 都是 KDC 的登记用户,A 和 B 在 KDC 登记时就已经在 KDC 的服务器上安装了各自和 KDC 进行通信的主密钥(master key) 的 KA 首先,用户 A 向密钥中心 KDC 发送时用明文,来表明自己想要和主机 B 建立通信,明文中包含了 A 和 B 在 KDC 登记的身份(此时 A 是知道 B 的登记信息的)。 由于 C 并不知道 A 的登记密钥 KA,所以就算截获了报文也不知道 KAB 会话密钥,其次 KDC 还可以在报文中增加时间戳,来防止 C 使用之前截获的报文进行攻击,除此之外 KDC 中的 KA 和
如HADOOP.COM kdc:代表要kdc的位置。添加格式是机器名 admin_server:代表admin的位置。格式是机器名 default_domain:代表默认的域名。 = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = HADOOP.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 10000d renew_lifetime = /var/kerberos/krb5kdc/kdc.conf 内容 [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] HADOOP.COM /下生成一系列文件, 如果重新创建,需要先删除/var/kerberos/krb5kdc下面principal相关文件。
网外分配方式 : 信使 携带 密钥 , 分配给互相通信的用户 ; ( 不再适用 ) 网内分配方式 : 密钥系统 自动分配 ; ( 推荐使用 ) 二、密钥分配中心 ---- 密钥分配中心 : ① 概念 : KDC , Key Distribution Center ; ② KDC 作用 : 通信各方都信任 KDC 机构 , 其任务是给通信各方 分配 临时会话密钥 , 仅使用一次 ; 三、对称密钥分配 ---- 对称密钥分配流程 : ① 用户注册 : 用户 A , B 都是 KDC 的 注册用户 , 各自分配了主密钥 K_A 和 K_B ; ② 申请密钥 : A 向 KDC 发送明文 A , B , 申请与 B 通信的密钥 ; ③ KDC 向 A 回送信息 : 会话密钥 : KDC 产生 一次性 会话密钥 K_{AB} , 该密钥时 A , B 会话使用的密钥 ; 票据信息加密 : 报文中还包含了一个 B 就知道了 A 想要和自己通信 , 并且带来了通信的密钥 ; 四、对称密钥分配说明 ---- 对称密钥分配说明 : ① 加入时间戳 : 加入时间戳 , 可以防止重放攻击 ; ② 用户密钥有效期 : KDC
密钥分发中心 对称密钥分发的典型解决方案: 通信各方建立一个大家都信赖的密钥分发中心(Key Distribution Center , KDC), 解决对称密钥安全可靠的分发。 1. Alice和Bob进行保密通信,Alice随机选择一个会话秘钥,用Alice和KDC之间长期的共享密钥加密会话秘钥, 发送给KDC; (2). KDC得到后, 解密获得会话密钥, 以及所希望通信方Bob, KDC利用其和Bob的长期共享密钥加密密钥, 发送给Bob; (3). 方式二:KDC为Alice、 Bob生成通信的会话秘钥。 (1). Alice在希望和Bob通信时, 首先向KDC发送请求消息; (2). KDC收到请求消息后, 随机选择一个会话秘钥, 并将会话秘钥分别用和Alice、 Bob的长期共享密钥加密, 再分别发送给Alice、 Bob; (3).
3.采用root用户操作 KDC服务安装及配置 本文档中将KDC服务安装在Cloudera Manager Server所在服务器上(KDC服务可根据自己需要安装在其他服务器) 1.在Cloudera 4.修改/var/kerberos/krb5kdc/kdc.conf配置 [root@ip-172-31-6-83 ~]# vim /var/kerberos/krb5kdc/kdc.conf [root @ip-172-31-6-83 ~]# cat /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 4.选择KDC服务类型,已经确保KDC服务是否已启动且准备好 ? 5.点击“继续”,配置相关的KDC信息,包括KDC服务器、KDC Realm、加密类型以及待创建的Service Principal的更新生命期等 ?