kerberos认证_Hadoop2.x安全:hadoop之kerberos认证(三、常用命令、有效期)

微信公众号: 大数据开发运维架构

关注可了解更多大数据相关的资讯。问题或建议,请公众号留言;

如果您觉得“大数据开发运维架构”对你有帮助,欢迎转发朋友圈


概述:

开启了Kerberos认证集群之后,集群不再像以前一样随意操作,需要证书进行登录,这里就讲一下我们日常用的的一些kerberos相关的一些操作,包括票据的创建、删除、有效期更改等。

常用操作:

1.登录控制台,如果直接kdc本地登录的话输入kadmin.local即可:

[root@master98 conf]# kadmin.local

如果在其他安装了kerberos客户端的机器登录已管理员登录输入密码,执行以下命令:

[root@salver158 ~]# kadminAuthenticating as principal admin/admin@CHINAUNICOM with password.Password for admin/admin@CHINAUNICOM:   //这里输入管理员票据密码

2.查看所有票据,控制台输入list_principals :

kadmin.local: list_principals
5c8ace1bd9bf3684490e9c295365ba8c.png

3.删除票据,控制台输入:

kadmin.local:  delete_principal zookeeper/salver32.hadoop.unicom@CHINAUNICOM 

4.新建票据,控制台输入:

要通过Kerberos的认证需要提供principal及其对应的密码。密码可以手动输入,也可以存放在一个keytab文件中。“Keytab”是“key table”的简写,它用于存放一个或多个principal的密码。进行Kerberos认证时,一个用户可以提供principal和密码,或者principal和keytab文件。如果使用principal和keytab文件认证,那么Kerberos会去keytab文件中读取principal密码。

1).生成指定key的principal,输入密码生成,中间根据提示输入两次密码即可:

kadmin:  addprinc  zookeeper/salver32.hadoop.unicom@CHINAUNICOMWARNING: no policy specified for zookeeper/salver32.hadoop.unicom@CHINAUNICOM; defaulting to no policyEnter password for principal "zookeeper/salver32.hadoop.unicom@CHINAUNICOM": Re-enter password for principal "zookeeper/salver32.hadoop.unicom@CHINAUNICOM": Principal "zookeeper/salver32.hadoop.unicom@CHINAUNICOM" created.

2).生成随机key的principal,创建票据并同时将生成的test.keytab文件放到/etc/security/keytabs文件夹下,两条命令控制台输入:

kadmin.local:  addprinc -randkey  zookeeper/salver158.hadoop.unicom@CHINAUNICOM  //生成票据
kadmin.local:   xst -norandkey -k /etc/security/keytabs/zk.service.keytab zookeepe

5.缓存票据(非控制台命令)

上面4)中票据“zookeeper/salver32.hadoop.unicom@CHINAUNICOM”是给salver32机器生成的,直接拷贝到32机器的/etc/security/keytabs目录下即可,可验证下票据是否可使用,分两步:

1).查看票据信息

 [root@salver32 keytabs]# klist -kt zk.service.keytab   //这里是查看票据信息,一个keytab文件可保存多个票据信息,一般我们只保存一个

2).根据1)中的票据信息,在salver32节点缓存票据,klist列出了凭证高速缓存中保存的Kerberos主体和Kerberos票证,或密钥表文件中保存的密钥

[root@salver32 keytabs]# kinit -kt zk.service.keytab  zookeeper/salver32.hadoop.unicom@CHINAUNICOM

这里截个图:

f55a2e2e4e4ac1b907e6eab6e3c2b150.png

说明一下缓存的票据是zookeeper/salver32.hadoop.unicom@CHINAUNICOM, 以后你对集群的所有操作用户就是zookeeper。

6.清除缓存票据(非控制台命令),kdestroy使用程序通过覆盖和删除包含它们的凭据缓存来破坏用户的活动Kerberos授权票证。如果未指定凭据缓存,则会破坏默认凭据缓存。

[root@salver32 keytabs]# kdestroy

7.修改票据密码(控制台命令),根据提示输入密码即即可:

kadmin.local:  cpw -pw unicom123 admin/adminPassword for "admin/admin@CHINAUNICOM" changed.

另外一种修改密码方式(非控制台命令),修改当前本地已缓存票据密码:

[root@salver32 keytabs]# kpasswdPassword for zookeeper/salver32.hadoop.unicom@CHINAUNICOM: Enter new password: 

修改密码后的票据,必须要重新生成keytab文件,不然票据无法通过kinit缓存,只需要重新建keytab文件就可以了:

kadmin.local:   xst -norandkey -k /etc/security/keytabs/zk.service.keytab zookeepe

8.获取票据信息(控制台输入),查看详细信息

getprinc zookeeper/salver32.hadoop.unicom@CHINAUNICOM

kadmin.local:  getprinc  zookeeper/salver32.hadoop.unicom@CHINAUNICOMPrincipal: zookeeper/salver32.hadoop.unicom@CHINAUNICOMExpiration date: [never]Last password change: Wed Feb 26 21:13:25 CST 2020Password expiration date: [none]Maximum ticket life: 3650 days 00:00:00Maximum renewable life: 3650 days 00:00:00Last modified: Wed Feb 26 21:13:25 CST 2020 (admin/admin@CHINAUNICOM)Last successful authentication: [never]Last failed authentication: [never]Failed password attempts: 0Number of keys: 7Key: vno 2, aes128-cts-hmac-sha1-96Key: vno 2, des3-cbc-sha1Key: vno 2, arcfour-hmacKey: vno 2, camellia256-cts-cmacKey: vno 2, camellia128-cts-cmacKey: vno 2, des-hmac-sha1Key: vno 2, des-cbc-md5MKey: vno 1Attributes:Policy: [none]

9.修改票据有效期(控制台输入):

kadmin.local:  modprinc -maxlife 360days -maxrenewlife 360days +allow_renewable zookeeper/salver32.hadoop.unicomPrincipal "zookeeper/salver32.hadoop.unicom@CHINAUNICOM" modified.

这里再获取一下,有效期已经更改:

a917d9a4402bf77f75c665fa7d817443.png

2.票据有效期

票据的两个属性:ticket_lifetime 和 renew_lifetime。

其中 ticket_lifetime 票据生效的时限,默认为24小时。在票据失效前部分凭证可以延期失效时间(即renewable), renew_lifetime 表明票据最长可以被延期的时限,默认7天。当票据过期之后,对安全认证的服务的后续访问则会失败。

1).当 ticket lifetime 结束时,该 ticket 将不再可用。

2).如果 renewable lifetime > ticket lifetime ,那么在票据生命周期内都可以其进行续期,直到达到可再生周期的上限。

3).当时间达到 renewable lifetime 后,ticket lifetime结束后将不能继续续期,续期时将会报错 KDC can't fulfill requested option while renewing credentials,之后需要重新申请新的 ticket。

4).可再生周期和 keytabs 无关,如果你没有修改 key 和 principal 的关系,keytabs 将不用关心。

举个列子:

ticket_lifetime = 1d

renew_lifetime = 7d

a.在登陆后的24h内可以对ticket进行续期,直到第一次登陆的7天后将不再允许续期。

b.在24h内如果没有续期,将无法续期。

c.对 ticket 进行一次续期后,ticket_lifetime 将恢复到24h。

关于票据有效期的几点说明:

1).klist中expires以及renew until是由client端的/etc/krb5.conf配置文件中的参数决定(前提是是没有超过Maximum ticket life)。

2).server端kdc.conf的配置起到限制client的作用。在client的设置超过Maximum ticket life的设置时,按Maximum ticket life取值,一般我们server、client端时间设置一致。

3).kdc.conf配置的更改对新建的principal会立即生效,旧的不会生效,如果需要对旧的principal生效,需要modprinc命令手动修改,具体命令请参照上面的:9.修改票据有效期

4).超过renew_lifetime时间之后,不能kinit -R,kinit -R不会改变票据缓存的renew until时间,如果想要改变票据缓存的renew until时间可以使用 kinit -r xx来renew tgt,最大时间由max_renewable_life限制。

5).renew_lifetime的优先级高于max_renewable_life,不管renew_lifetime大于等于还是小于等于max_renewable_life,都是取renew_lifetime的值。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值