Kerberos ticket lifetime及其它

前言

之前的博文中涉及到了Kerberos的内容,这里对Kerberos ticket lifetime相关的内容做一个补充。

ticket lifetime

Kerberos ticket具有lifetime,超过此时间则ticket就会过期,需要重新申请或renew。ticket lifetime取决于以下5项设置中的最小值:

  • Kerberos server上/var/kerberos/krb5kdc/kdc.conf中max_life
  • 内置principal krbtgt的maximum ticket life,可在kadmin命令行下用getprinc命令查看
  • 你的principal的maximum ticket life,可在kadmin命令行下用getprinc命令查看
  • Kerberos client上/etc/krb5.conf的ticket_lifetime
  • kinit -l 参数后面指定的时间

ticket renew lifetime

ticket过期后,如果想延长,一种方法是重新申请(需要输入密码),另一种是renew(不需要输入密码),每renew一次,就延长一个lifetime。不过renew操作本身也有lifetime,即在ticket renew lifetime,在此lifetime之内,才能进行renew操作。与上面的很相似,ticket renew lifetime取决于以下5项设置中的最小值:

  • Kerberos server上/var/kerberos/krb5kdc/kdc.conf中max_renewable_life
  • 内置principal krbtgt的maximum renewable life,可在kadmin命令行下用getprinc命令查看
  • 你的principal的maximum renewable life,可在kadmin命令行下用getprinc命令查看
  • Kerberos client上/etc/krb5.conf的renew_lifetime
  • kinit -r 参数后面指定的时间

HBase与ticket lifetime

HBase需要长时间运行,它对ticket过期问题的处理见org.apache.hadoop.hbase.ipc.RpcClient,方法handleSaslConnectionFailure(),方法注释中提到HBase是尝试自动relogin,从代码上看应该是直接获取一个新的ticket,而不是进行renew。

The other problem is to do with ticket expiry. To handle that, a relogin is attempted.
The retry logic is governed by the shouldAuthenticateOverKrb method. In case when the user doesn‘t have valid credentials, we don‘t need to retry (from cache or ticket). In such cases, it is prudent to throw a runtime exception when we receive a SaslException from the underlying authentication implementation, so there is no retry from other high level (for eg, HCM or HBaseAdmin).

另外:

[org.apache.hadoop.security.UserGroupInformation] Not attempting to re-login since the last re-login was attempted less than 600 seconds before.

这个错误实际是由于UserGroupInformation中的一个hard code值引起的,MIN_TIME_BEFORE_RELOGIN=10*60*1000L,是hadoop自己做出的限制,即不允许过于频繁地relogin,需要将ticket_lifetime设置为大于10分钟即可。

keytab与ticket lifetime

keytab文件实际只是一个密码文件,显然,修改lifetime相关设置跟密码是没有关系的,不需要去重新生成现有的keytab文件。

一些命令

  • kadmin: modprinc -maxrenewlife 11days +allow_renewable {principal}
  • kadmin: modprinc -maxlife 6minutes {principal}
  • kadmin: getprinc {principal} //retrieve the detail info of principal
  • kinit -R //renew current ticket
  • kinit {principal} -kt {keytab file} //init a principal via keytab file
时间: 2024-10-03 14:45:37

Kerberos ticket lifetime及其它的相关文章

域攻击策略

https://adsecurity.org/?p=2362 Attack Methods for Gaining Domain Admin Rights in Active Directory ActiveDirectorySecurity, Microsoft Security, Technical Reference by Sean Metcalf There are many ways an attacker can gain Domain Admin rights in Active

为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制

4. 为CDH 5集群添加Kerberos身份验证4.1 安装sentry1.点击"操作","添加服务":2.选择sentry,并"继续": 3.选择一组依赖关系 4.确认新服务的主机分配 5.配置存储数据库:在mysql中创建对应用户和数据库: mysql>create database sentry default character set utf8 collate utf8_general_ci; mysql>grant al

Kerberos简单应用

Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证.可以用于防止窃听.防止replay攻击.保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统.为了账号的统一管理方便,公司开始使用了Kerberos.下面是一些简单且常用的命令,mark一下. windows客户端系统 一  [安装krb5软件] 若使用SecureCRT为64位版本需要对应安装64位kr

FIM 2010: Kerberos Authentication Setup

The goal of this article is to provide some background information regarding the Kerberos related configuration steps of the FIM Portal and FIM Service. The article has been written in such a way so that most of the points can in fact be used for any

kafka的安装及基本使用

1.安装zookeeper # 解压缩 [[email protected] zookeeper]# tar -zxvf zookeeper-3.4.12.tar.gz [[email protected] zookeeper]# mv zookeeper-3.4.12 zk_simple # 复制zoo_simple.cfg到zoo.cfg [[email protected] zookeeper]# cd zk_simple/ [[email protected] zk_simple]# c

Kafka单节点及集群配置安装

一.单节点 1.上传Kafka安装包到Linux系统[当前为Centos7]. 2.解压,配置conf/server.property. 2.1配置broker.id 2.2配置log.dirs 2.3配置zookeeper.connect 3.启动Zookeeper集群 备注:zookeeper集群启动时,先启动的节点因节点启动过少而出现not running这种情况,是正常的,把所有节点都启动之后这个情况就会消失! 3.启动Kafka服务 执行:./kafka-server-start.sh

构建和实现单点登录解决方案

将一个开放源码的基于 Java 的身份验证组件集成进 Web 门户中 在现有的应用程序中实现单点登录解决方案(single sign-on,SSO,即登录一次,就可以向所有网络资源验证用户的身份)是非常困难的,但是在构建复杂的门户时,每个开发人员都要面对这个问题.因为门户需要与后端资源集成,而每个后端资源都有自己的身份验证需求,所以门户常常必须向用户提供单点登录特性.在本文中,Chris Dunne 一步步地描述了他为一个 Web 门户构建单点登录解决方案的经历.他将讲解如何设置一个开放源码解决

python之文件对象

防伪码忘情公子著 文件对象是用来访问文件系统接口所对应的数据的 文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构-即在磁盘上组织文件的方法 计算机文件或称文件.电脑档案.档案是存储在某种长期储存设备或临时存储设备中的一段数据流并且归属于计算机文件系统管理之下 概括来讲 文件是计算机中由OS管理的具有名字的存储区域 在Linux系统上文件被看做是字节序列 要想把数据存储到文件中有一个前提那就是必须序列化非序列化的数据是不能简单的存储在文件系统中的文件中的 对于python来说文件对象不仅可

Linux与云计算——第二阶段Linux服务器架设 第六章:目录Directory服务器架设—FreeIPA

Linux与云计算--第二阶段Linux服务器架设 第六章:目录Directory服务器架设-FreeIPA 1 FreeIPA 配置FreeIPA服务器 Configure IPA Server to share users' account in your local network. [1] Install FreeIPA. [[email protected] ~]# yum -y install ipa-server ipa-server-dns bind bind-dyndb-lda