安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Kerberos认证原理与环境部署

3月23日 顾昀汐投稿
  一、概述
  Kerberos是为TCPIP网络系统设计的可信的第三方认证协议,用于身份认证。网络上的Keberos服务基于DES对称加密算法,但也可以用其他算法替代。因此,Keberos是一个在许多系统中获得广泛应用的认证协议。Keberos最初是美国麻省理工学院(MIT)为Athena项目开发的。
  官网:https:www。kerberos。org
  官方文档:http:web。mit。edukerberoskrb5currentdoc1)应用场景
  Kerberos采用客户端服务器(CS)结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证,是一种应用对称密钥体制进行密钥管理的系统。可以用于防止窃听、防止replay攻击、保护数据完整性等场合。2)功能特性安全性
  Kerberos提供双向认证,不仅Server可以对Client进行认证,Client也能对Server进行认证。Server对Client认证成功之后,通过返回Client发送的时间戳,向Client提供验证自己身份的手段。可靠性
  认证服务是其他服务的基础,服务认证过程有助于提升整个系统的可用性和高可靠性。可扩展性
  KDC(秘钥分配中心)是秘钥体系的重要部分,旨在减少密钥体制所固有的交换密钥时所面临的风险。用户可以根据需要扩展多个KDC。开放性
  Kerberos已经成为计算机领域一个被广泛接受的标准,所以使用Kerberos可以轻松实现不同平台之间的互操作。二、Kerberos中的核心概念
  Kerberos中有以下一些概念需要了解:KDC:密钥分发巾心,负责管理发放票据,记录授权。Realm:Kerberos管理领域的标识。principal:Kerberos下的用户可以称为Principal,当每添加一个用户或服务的时候都需要向kdc添加一条principal,principal的形式为:主名称实例名领域名。主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs、yam,、hive)的主体。实例名:实例名简单理解为主机名。keytab文件:存储了用户的加密密码。常用这种方式认证。1)用户principal
  用户principal的形式:
  Name〔Instance〕REALM
  其中Instance是可选的,通常用于更好地限定用户的类型。比如,一个管理员用户通常会有admininstance,即NameadminREALM。
  下面是指代用户的一些principal的例子:pippoEXAMPLE。COMadminadminEXAMPLE。COMcnicetouppadminEXAMPLE。COM2)服务principal
  用户principal的形式:
  ServiceHostnameREALM第一部分是service的名字,比如imap,AFS,ftp。通常host这个名字被用于指明对一台机器的通用的访问(telnent,rsh,ssh)。第二个component是提供这个服务的机器的全限定域名(FQDN)。这个component跟DNS对应用服务器的IP地址进行逆向解析后得到的主机名。
  下面是指代服务principal的例子:imaphadoopnode1EXAMPLE。COMhosthadoopnode1EXAMPLE。COMafshadoopnode1EXAMPLE。COM3)Ticket
  Ticket分两种:TicketGrantingTicket,TGT:这是KDC中的AuthenticationServer(简称AS)产生的,TGT是向TicketGrantingServer(TGS)用于表明自己真实身份的东西。ServiceTicket:这是KDC中的TicketGrantingServer(简称TGS)产生的,ServiceTicket是用于向应用服务器表明自己身份的东西三、Kerberos架构与工作原理ASREQ是在初始化一个用户(kinit)的时候发出的用户认证请求,这个请求是发给KDC中的AuthenticationServer(AS);ASREP是AS回复给client的信息,其中包括TGT(用TGSsecretkey加密过的)andthesessionkey(用发请求的用户的secretkey加密过的);TGSREQ是client为了一个serviceticket向TicketGrantingServer(TGS)的信息。其中包括上一条信息中获得的TGT(用TGSsecretkey加密过的),一个客户端产生的一个authenticator(用sessionkey加密过的)。TGSREP是TGS回复给TGSREQ的信息。其中包括serviceticket(用appservice的secretkey加密过),和一个TGS产生的servicesessinonkey(之前AS产生的一条sessionkey给加密过的)APREQ是一条客户端发给appserver的访问服务的请求,其中包括serviceticket和一个authenticator(使用TGS产生的servicesessionkey加密过的)APREP是appserver回复给client的一条信息,证明这个appserver确实是客户端希望访问的server。不过这条信息也不一定总是要回复的。比如当客户端和appserver需要相互认证的时候,客户端向appserver发出请求,这个时候就不需要回复信息。
  Kerberos认证时序图:
  四、Kerberos安装
  官方文档:https:kerberos。orgdistindex。html
  【温馨提示】这里主机名和域名都在配置etchosts192。168。0。113hadoopnode1server。kerberos。com192。168。0。114hadoopnode2client1。kerberos。com192。168。0。115hadoopnode3client2。kerberos。com
  主机名
  IP
  角色
  hadoopnode1
  server。kerberos。com
  192。168。0。113
  KDC(KerberosServer、kadmin)
  hadoopnode2
  client1。kerberos。com
  192。168。0。114
  KerberosClient
  hadoopnode3
  client1。kerberos。com
  192。168。0。115
  KerberosClient1)KerberosServer安装
  在hadoopnode1节点上执行如下命令安装KerberosServer1、yum安装krb5server:Kerberos服务端程序,KDC所在节点。krb5workstation:包含一些基本Kerberos程序,比如(kinit,klist,kdestroy,kpasswd),使用Kerberos的所有节点都应该部署。krb5libs:包含Kerberos程序的各种支持类库等。yuminstallkrb5serverkrb5workstationkrb5libs2、配置krb5。conf
  【温馨提示】etckrb5。conf:客户端根据该文件中的信息取访问KDCTooptoutofthesystemcryptopoliciesconfigurationofkrb5,removethesymlinkatetckrb5。conf。dcryptopolicieswhichwillnotberecreated。includediretckrb5。conf。dKerberos守护进程的ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a记录方式。换句话说,表示server端的ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a的打印位置。〔logging〕默认的krb5libs。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径defaultFILE:varlogkrb5libs。log默认的krb5kdc。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径kdcFILE:varlogkrb5kdc。log默认的kadmind。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径adminserverFILE:varlogkadmind。logKerberos使用的默认值,当进行身份验证而未指定Kerberos域时,则使用defaultrealm参数指定的Kerberos域。即每种连接的默认配置,需要注意以下几个关键的配置:〔libdefaults〕DNS查找域名,我们可以理解为DNS的正向解析,该功能我没有去验证过,默认禁用。(我猜测该功能和domainrealm配置有关)dnslookuprealmfalse凭证生效的时限,设置为24h。ticketlifetime24h凭证最长可以被延期的时限,一般为7天。当凭证过期之后,对安全认证的服务的后续访问则会失败。renewlifetime7d如果此参数被设置为true,则可以转发票据,这意味着如果具有TGT的用户登陆到远程系统,则KDC可以颁发新的TGT,而不需要用户再次进行身份验证。forwardabletrue我理解是和dnslookuprealm相反,即反向解析技术,该功能我也没有去验证过,默认禁用即可。rdnsfalse在KDC中配置pkinit的位置,该参数的具体功能我没有做进一步验证。pkinitanchorsetcpkitlscertscabundle。crt设置Kerberos应用程序的默认领域。如果您有多个领域,只需向〔realms〕节添加其他的语句。其中默认EXAMPLE。COM可以为任意名字,推荐为大写,这里我改成了HADOOP。COM。必须跟要配置的realm的名称一致。defaultrealmHADOOP。COM顾名思义,默认的缓存名称,不推荐使用该参数。defaultccachenameKEYRING:persistent:{uid}〔realms〕HADOOP。COM{kdc服务器地址。格式〔主机名或域名〕:端口,默认端口是88,默认端口可不写kdcserver。kerberos。com:88admin服务地址格式〔主机名或域名〕:端口,默认端口749,默认端口可不写adminserverserver。kerberos。com:749代表默认的域名,设置Server主机所对应的域名defaultdomainkerberos。com}指定DNS域名和Kerberos域名之间映射关系。指定服务器的FQDN,对应的domainrealm值决定了主机所属的域。〔domainrealm〕。kerberos。comHADOOP。COMkerberos。comHADOOP。COMkdc的配置信息。即指定kdc。conf的位置。〔kdc〕kdc的配置文件路径,默认没有配置,如果是默认路径,可以不写profilevarkerberoskrb5kdckdc。conf3、配置kdc。conf
  【温馨提示】varkerberoskrb5kdckdc。conf:kdc的专属配置,可以根据自己的需求修改下kdc数据库的存放目录。〔kdcdefaults〕指定KDC的默认端口kdcports88指定KDC的TCP协议默认端口。kdctcpports88〔realms〕该部分列出每个领域的配置。HADOOP。COM{和supportedenctypes默认使用aes256cts。由于,JAVA使用aes256cts验证方式需要安装额外的jar包(后面再做说明)。推荐不使用,并且删除aes256cts。(建议注释掉,默认也是注释掉的)masterkeytypeaes256cts标注了admin的用户权限的文件,若文件不存在,需要用户自己创建。即该参数允许为具有对Kerberos数据库的管理访问权限的UPN指定ACL。aclfilevarkerberoskrb5kdckadm5。acl该参数指向包含潜在可猜测或可破解密码的文件。dictfileusrsharedictwordsKDC进行校验的keytab。adminkeytabvarkerberoskrb5kdckadm5。keytabticket的默认生命周期为24hmaxfile24h该参数指定在多长时间内可重获取票据,默认为0maxrenewablelife7d指定此KDC支持的各种加密类型。supportedenctypesaes256cts:normalaes128cts:normaldes3hmacsha1:normalarcfourhmac:normalcamellia256cts:normalcamellia128cts:normaldeshmacsha1:normaldescbcmd5:normaldescbccrc:normal}4、配置kadm5。acl
  【温馨提示】varkerberoskrb5kdckadm5。acl:权限相关配置
  其中前一个号是通配符,表示像名为abcadmin或xxxadmin的人都可以使用此工具(远程或本地)管理kerberos数据库,后一个跟权限有关,表示所有权限。HADOOP。COM是上面配置的realm。adminHADOOP。COM
  Kerberoskadmind使用该文件来管理对Kerberos数据库的访问权限。对于影响principa的操作,ACL文件还控制哪些principa可以对哪些其他principa进行操作。文件格式如下:principalpermissions〔targetprincipal〔restrictions〕〕
  相关参数说明:principal:设置该principal的权限;principal的每个部分都可以使用。permissions:权限,指定匹配特定条目的主体可以执行或不可以执行的操作。如果字符是大写,则不允许该操作。如果字符是小写,则允许该操作。有如下一些权限:a:〔不〕允许添加主体或策略。d:〔不〕允许删除主体或策略。m:〔不〕允许修改主体或策略。c:〔不〕允许更改主体的口令。i:〔不〕允许查询Kerberos数据库。l:〔不〕允许列出Kerberos数据库中的主体或策略。x或:允许所有权限。targetprincipal:目标principal,目标principal的每个部分都可以使用。【可选】restrictions:针对权限的一些补充限制,如:限制创建的principal的票据最长时效。【可选】
  【示例】
  kadm5。acl文件中的以下项授予HADOOP。COM领域中包含admin实例的任何主体对Kerberos数据库的所有权限:adminHADOOP。COM
  kadm5。acl文件中的以下项授予testEXAMPLE。COM主体添加、列出和查询包含root实例的任何主体的权限。testEXAMPLE。COMalirootEXAMPLE。COM
  kadm5。acl文件中的以下项不授予testEXAMPLE。COM主体添加、列出和查询包含root实例的任何主体的权限。testEXAMPLE。COMALIrootEXAMPLE。COM
  详细说明可参考官网文档:https:web。mit。edukerberoskrb5latestdocadminconffileskadm5acl。html5、初始化KDC数据库kdb5utilcreaterHADOOP。COMsllavarkerberoskrb5kdcs:表示生成stashfile,并在其中存储masterserverkey(krb5kdc)r:指定realmname
  kerberos数据库创建完之后,默认会创建以下5个文件(kdc。conf、kadm5。acl除外的其他几个),Kerberos数据库的目录为:varkerberoskrb5kdc,如果需要重建数据库,可删除这五个文件重新执行上面的命令创建。rmvarkerberoskrb5kdc。k5。HADOOP。COMvarkerberoskrb5kdcprincipalf6、启停Kerberos服务
  启动:systemctlstartkrb5kdckadmin查看服务状态systemctlstatuskrb5kdckadmin
  停止:systemctlstopkrb5kdckadmin7、kadmin。local
  Kerberos服务机器上可以使用kadmin。local来执行各种管理的操作。进入kadmin。local,不需要输入密码:kadmin。local
  常用操作:
  操作
  描述
  示例
  addprincipal,addprinc,ank
  增加principal
  addprincipalrandkeytestHADOOP。COM
  cpw
  修改密码
  cpwtestHADOOP。COM
  deleteprincipal,delprinc
  删除principal
  deleteprincipaltestHADOOP。COM
  modifyprincipal,modprinc
  修改principal
  modifyprincipaltestHADOOP。COM
  renameprincipal,renprinc
  重命名principal
  renameprincipaltestHADOOP。COMtest2ABC。COM
  getprincipal,getprinc
  获取principal
  getprincipaltestHADOOP。COM
  listprincipals,listprincs,getprincipals,getprincs
  显示所有principal
  listprincs
  ktadd,xst
  导出条目到keytab
  xstkroottest。keytabtestHADOOP。COM
  ?
  查看帮助
  ?
  【温馨提示】randkey是密码是随机的,nokey密码不随机【默认】,得手动输入密码。
  【示例】addprincrandkeyhdfsadminaddprincpw123456hdfsadminaddprinchdfsadmin输入密码:1234562)KerberosClient安装
  在hadoopnode2和hadoopnode3节点上安装clientkrb5workstation:包含一些基本Kerberos程序,比如(kinit,klist,kdestroy,kpasswd),使用Kerberos的所有节点都应该部署。krb5devel:包含编译Kerberos程序的头文件和一些类库。yuminstallkrb5develkrb5workstationy
  配置krb5。conf
  【温馨提示】etckrb5。conf:客户端根据该文件中的信息取访问KDCTooptoutofthesystemcryptopoliciesconfigurationofkrb5,removethesymlinkatetckrb5。conf。dcryptopolicieswhichwillnotberecreated。includediretckrb5。conf。dKerberos守护进程的ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a记录方式。换句话说,表示server端的ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a的打印位置。〔logging〕默认的krb5libs。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径defaultFILE:varlogkrb5libs。log默认的krb5kdc。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径kdcFILE:varlogkrb5kdc。log默认的kadmind。logahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件存放路径adminserverFILE:varlogkadmind。logKerberos使用的默认值,当进行身份验证而未指定Kerberos域时,则使用defaultrealm参数指定的Kerberos域。即每种连接的默认配置,需要注意以下几个关键的配置:〔libdefaults〕DNS查找域名,我们可以理解为DNS的正向解析,该功能我没有去验证过,默认禁用。(我猜测该功能和domainrealm配置有关)dnslookuprealmfalse凭证生效的时限,设置为24h。ticketlifetime24h凭证最长可以被延期的时限,一般为7天。当凭证过期之后,对安全认证的服务的后续访问则会失败。renewlifetime7d如果此参数被设置为true,则可以转发票据,这意味着如果具有TGT的用户登陆到远程系统,则KDC可以颁发新的TGT,而不需要用户再次进行身份验证。forwardabletrue我理解是和dnslookuprealm相反,即反向解析技术,该功能我也没有去验证过,默认禁用即可。rdnsfalse在KDC中配置pkinit的位置,该参数的具体功能我没有做进一步验证。pkinitanchorsetcpkitlscertscabundle。crt设置Kerberos应用程序的默认领域。如果您有多个领域,只需向〔realms〕节添加其他的语句。其中默认EXAMPLE。COM可以为任意名字,推荐为大写,这里我改成了HADOOP。COM。必须跟要配置的realm的名称一致。defaultrealmHADOOP。COM顾名思义,默认的缓存名称,不推荐使用该参数。defaultccachenameKEYRING:persistent:{uid}〔realms〕HADOOP。COM{kdc服务器地址。格式〔主机名或域名〕:端口,默认端口是88,默认端口可不写kdcserver。kerberos。com:88admin服务地址格式〔主机名或域名〕:端口,默认端口749,默认端口可不写adminserverserver。kerberos。com:749代表默认的域名,设置Server主机所对应的域名defaultdomainkerberos。com}指定DNS域名和Kerberos域名之间映射关系。指定服务器的FQDN,对应的domainrealm值决定了主机所属的域。〔domainrealm〕。kerberos。comHADOOP。COMkerberos。comHADOOP。COM
  测试验证连接server默认用户是rootadminHADOOP。COM,发现在数据库里没有这个用户,可以先在server端创建该用户:addprincipalrootadminHADOOP。COMkadmin输入密码:123456
  指定用户kadminptestHADOOP。COM
  3)基本命令操作1、kadmin(数据库管理)
  Kerberos客户端机器上可以使用kadmin来执行各种管理的操作,服务端可以使用kadmin和kadmin。local命令。需先在KerbersServer上创建登录的principal,默认为{当前用户}adminrealm。
  管理KDC数据库有两种方式:一种直接在KDC(server端)直接执行,可以不需要输入密码就可以登录【命令:kadmin。local】一种则是客户端命令,需要输入密码【命令:kadmin】,在server端和client端都可以使用。
  创建用户,注意自己设置的密码交互式kadmin。localaddprincipalrootadmin非交互式kadmin。localqaddprincipalrootadmin2、kinit(在客户端认证用户)kinitrootadminHADOOP。COM查看当前的认证用户klist
  3、导出keytab认证文件
  使用xst命令或者ktadd命令:非交互式kadmin。localqktaddnorandkeykrootroot。keytabrootadmin交互式kadmin。localktaddnorandkeykrootroot。keytabrootadmin或xstkrootv。keytabrootadmin或xstnorandkeykrootroot。keytabrootadmin
  其中rootroot。keytab为自己指定的路径与文件名,以。keytab结尾;rootadmin为之前创建的凭证用户
  查看密钥文件klistktrootroot。keytab4、kdestroy(删除当前的认证缓存)kdestroy5、用户认证(登录)
  基于密码认证klistkinitrootadmin输入密码:123456klist
  基于密钥认证(keytab)删除当前用户认证kdestroy拿到上面生成的keytab文件klistkinitktrootroot。keytabrootadminklist
  常见的基础操作就到这里了,更多操作命令,可以查看官方文档和查看帮助。后续会分享kerberos认证实战文章,请小伙伴耐心等待
投诉 评论 转载

西班牙世纪德比黄金时段开打,谁执牛耳?北京时间10月16日晚22时,伯纳乌将迎来第100次伊比利亚德比,目前积分榜如图!周中皇马显然留力战平,巴萨则白拼一场!赛后加西亚、哈维、布茨克茨均表达了看法,而在丢球后……13年后再看伊能静的婚姻,终于明白她为何抛弃庾澄庆选择了秦昊兄弟,别怪我没提醒你,多看着点嫂子张宇对庾澄庆酒后吐真言,却没想到一语成谶。当时庾澄庆与伊能静正打得火热,婚姻幸福还育有一子,被好兄弟这么一说,庾……展望巴黎奥运会,李隼的烦恼,其实却是秦志戬所羡慕的2024年的巴黎奥运会,看似还有不少时间,但时间其实过得会很快,尤其是对乒乓球选手而言,在训练和比赛中,时间就这样过去了,而在时间的流逝中,还要奋尽全力去争取奥运参赛资格,哪怕……寿命最长的6种人,看看其中有你吗?建议收藏前言:作为老年人,他们最大的愿望莫过于自己能够健康长寿。老年人最大的遗憾,不是没钱花,而是有钱却没命花。老年人如果失去了身体健康,即使拥有再多的钱财,也只是一场空。……全国保有量正式突破千万大关,谁才是新能源汽车最强市?每经记者:程晓玲每经编辑:刘艳美,孙志成,盖源源高歌猛进的新能源汽车,已成为拉动汽车市场的重要引擎。自2015年以来,我国新能源汽车产销已连续7年位居全球第一。公安……划重点!原神3。1活动详细攻略,一加原神限定版手机也在路上了如果说当下最火的游戏是哪个?《原神》无疑是其中之一,虽然它对手机的硬件配置和性能表现要求很高,但仍然无法阻挡玩家对它的喜爱。随着《原神》游戏版本不断提升,内容和细节也更加丰富,……冰城馨子与大学生们分享黑龙江旅游与做自媒体的感受写在前面:四月初我在海南时接到哈尔滨学院的地理与旅游学院旅游系的刘向阳书记的邀请,希望我给学生们讲讲黑龙江旅游自媒体的宣传。过去也有几个大学想请我去和学生们交流做黑龙江旅……金镶玉的全陶瓷手表,这样的华为WATCHGT3Pro你喜欢吗暖融方沁瑟香园,春潮带水锦玉瓷。手表,最初是为了查看时间方便,而设计佩戴在腕上的时钟,如今成了刻画社交属性,点缀时尚的艺术品。时光在飞速奔跑,看向时针的每一眼不过是刻度或……九大热门射手的克制链,如何让对面发育路直接坐牢?今天,我整理了几个热门射手的克制关系,希望能在BP时给到大家一点启发,尽量赢在起跑线上。如何克制百里守约?百里守约的二技能拥有全射手最远的射程距离,可以在屏幕外对敌……改变自己,从管理情绪开始不对家人发怒火,控制脾气你有没有经历过这样的时刻:和朋友相处时,你会为了维持关系忍受矛盾,可回到家,父母的一句唠叨却让你大发雷霆;工作压力大时,你会为了公司利益忍气吞声,……Kerberos认证原理与环境部署一、概述Kerberos是为TCPIP网络系统设计的可信的第三方认证协议,用于身份认证。网络上的Keberos服务基于DES对称加密算法,但也可以用其他算法替代。因此,K……这几款值得购买的4000元以下旗舰性能手机得益于激烈的市场竞争,许多千元机也用上了旗舰处理器,不同价位段的手机性能差距越来越小,这让许多消费者也能用低价买到高性能手机。但高价位手机凭借更好的屏幕、相机和做工依然拥有极高……
陈晨丨如何用人类学的方法做用户体验研究?初冬时节,您眼中看到的是满地秋的悲凉,还是盼雪的希望三方交易!巴萨锁定莱万,拜仁敲定马内,利物浦成最大赢家13年总决赛G6,波什抢下前板为何无视詹姆斯,传给5中1的雷大巴黎VS特鲁瓦首发曝光轮换2将3大新援领衔中场王炸三叉戟冲vivo将于4月25日晚上举办新品发布会vivoX80系列手高血压不能吃核桃?提醒真正不建议高血压患者吃的,是这几物女娲补天漏了这里,于是这里一年四季下雨不断,成为中国雨城为什么不能用量子纠缠进行超光速通信?小学生都能看懂的解释来了南太行最美出行地小魔道灵泉峡湖北最美二十个景点推荐奥库,姚明生涯最恶心的对手,投得一手好三分,娶了世界超模冠军重婚罪是无效还是违法?我战胜利恐惧无民事行为能力人的配偶为监护人吗?两支西部第一跌落神坛!卫冕冠军坐收大礼,联盟第一外强中干?深埋在我记忆中的它滑雪鞋买大了怎么办备孕的人能喝自酿的葡萄酒吗中国移动业务上的死循环村居杂咏其二男人不爱戴套的四个原因你中了吗红米手机怎样查定位(手机号查询定位)办公室内安装监控会侵犯隐私吗

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利