kerberos文档

1 kadmin

kadmin是 Kerberos V5数据库管理程序

用法:

kadmin [-O|-N] [-r realm] [-p principal] [-q query] [[-c cache_name]|[-k [-t keytab]]|-n] [-w password] [-s admin_server[:port]] [command args...]

kadmin.local [-r realm] [-p principal] [-q query] [-d dbname] [-e enc:salt ...]  [-m] [-x db_args] [command args...]

描述:

kadmin和kadmin.local都是Kerberos V5管理系统的命令行接口。两者基本上提供完全相同的功能,唯一的区别是kadmin.local直接访问KDB数据库,而kadmin使用kadmind(8)来执行操作。这个文档中将使用kadmin来指代两者。kadmin维护Kerberos的账号(principals),密码策略以及service key tables(keytabs)。

远程kamin客户端通过用服务账号kadmin/ADMINHOST或者kadmin/admin使用Kerberos认证kadmind。(其中的ADMINHOST是admin服务的完整主机名)。如果认证缓存(credentials cache)包含任意一个这些账号的ticket,并且指定了-c credentials_cache选项,则这个ticket用于认证kadmind。否则,用-p以及-k选项指定客户端用于认证的Kerberos的账号名。一旦kadmin检查到账号名,它从KDC请求服务ticket,并用这个服务ticket去向kadmind认证。

因为kadmin.local直接访问KDC数据库,因此它必须直接运行在主KDC上,并有足够的权限来读取KDC的数据库。如果KDC数据库使用LDAP数据库模块,kadmin.local可以运行在任何可以访问LDAP服务器的机器上。

选项:

-r realm 使用realm作为默认的数据库realm

-p principal 使用principal来认证。否则,kadmin将追加/admin到默认cache的主账号名后面,或者追加到USER环境变量的值后面,或者通过getpwuid获取的用户名。

-k 使用一个keytab解密KDC响应信息,而不是提示需要密码。这种情况下,默认的账号是host/hostname。如果没有用-t选项指定keytab,那么使用默认的keytab

-t keytab 使用keytab来解密KDC的响应,这个只能跟-k选项一块使用

-d dbname 指定KDC数据库的名字,这个选项不会用到LDAP数据库模块中

-q query 执行指定的查询然后退出

-s amin_server[:port] 指定kadmin访问的admin服务器

-m 如果使用kadmin.local,提示需要数据库密码,而不是直接从一个存储文件中读取

 

2 kadmind

KADM5管理服务器

符号:

kadmind  [-x db_args] [-r realm] [-m] [-nofork] [-proponly] [-port port-number] [-P pid_file] [-p kdb5_util_path] [-K kprop_path] [-k kprop_port] [-F dump_file]

描述:

kadmind启动Kerberos管理服务器。kadmind通常运行在存着KDC数据库的主Kerberos服务器上。如果KDC数据库使用LDAP模块,管理服务以及KDC服务就没必要运行在同一台机器上。kadmind接受从例如kadmin和kpasswd发出的远程请求,来管理这些数据库中的信息。

kadmin需要一些配置文件来支持其运行:

kdc.conf

    KDC配置文件包含KDC和admin服务的配置信息。kadmind使用这个文件中的设置来定位Kerberos数据库以及其他信息。

kadm5.acl

    kadmind的访问控制列表文件告诉kadmind哪个账户允许执行管理动作。到ACL文件的路径可以在acl_file变量(在kdc.conf文件中)中指定。默认情况下是 /var/kerberos/krb5kdc/kadm5.acl

在server开始运行之后,将其放到后台运行,并断开其控制终端。

选项

-r realm 指定kadmind将服务的realm。如果没有指定,使用主机默认的realm。

-port port-number 指定管理服务监听连接的端口。默认是由(kdc.conf文件中的)kadmind_port指定的。

3 kinit

获取并缓存Kerberos TGT(ticket-granting ticket)

用法:

kinit  [-V] [-l lifetime] [-s start_time] [-r renewable_life] [-p | -P] [-f | -F] [-a] [-A] [-C] [-E] [-v] [-R] [-k [-t keytab_file]] [-c cache_name] [-n] [-S service_name] [-I input_ccache] [-T armor_ccache] [-X attribute[=value]] [principal]

描述:

kinit给principal 获取并缓存一个初始化的TGT。如果principal没有填,kinit会选择一个合适的基于已经存在的认证缓存内容或者调用kinit的用户的本地用户名来作为principal名字。部分选项修改选择的principal名字。

选项:

-l lifetime 持续时间字符串 用lifetime作为生命周期来请求tickets

例如,kinit -l 5:30 或者 kinit -l 5h30m。如果没有指定-l选项,使用的是默认的ticket生命周期(由每个站点配置的)。指定一个超过每个站点配置的最大的ticket生命周期将不会覆盖已经配置的最大的ticket生命周期。

-s start_time 持续时间字符串 请求一个延后生效的ticket。 延后生效的ticket带有无效标志,需要在使用之前重复提交到KDC来验证有效性。start_time指定了ticket变有效的延后的时间。

-r renewable_life 持续时间字符串 请求一个可延长有效期的tickets,其中的renewable_life指定了总的生命周期。

-a 请求限制到主机的本地地址的tickets

-A 请求不限制地址的tickets

-v 请求将缓存中的TGT传递到KDC以验证其有效性。如果ticket是在请求的时间范围内,将缓存替换为已经验证过的ticket

-R 请求TGT的续约。注意一个已经过期的ticket不能续约,即使这个已经过期的ticket仍然在其可续约的生命周期内。

注意已经被klist认为是过期的可续约tickets,有时候可用这个选项进行续约,因为KDC应用宽限期来解决客户端KDC时钟误差。参考krb5.conf(5) clockskew设置。

-k [-i|-t keytab_file] 请求一个从在本地主机的keytab中获取的ticket。keytab的位置可以用-t keytab_file选项指定或者用-i 选项指定使用默认的client keytab;否则使用默认的keytab。默认情况下,请求的是本地主机的ticket,但是可以指定任意的principal。在一个KDC中,特殊的keytab位置KDB用于指示kinit应该打开KDC数据库并直接查找密钥。 这允许管理员以支持基于密钥的身份验证的任何principal的身份来获取ticket。

-n 请求匿名式的处理。支持两类匿名的账号:

-T  armor_ccache 指定一个已经包含一个ticket的认证cache的名字。如果KDC支持,则此缓存将用于处理请求,防止脱机字典攻击并允许使用其他预身份验证机制。 装甲还确保在传输过程中来自KDC的响应不会被修改。

-I input_ccache 指定一个已经包含一个ticket的认证cache的名字。在获取该票证时,如果还将有关如何获取该票证的信息也存储到cache中,则该信息将用于影响如何获取新凭证,包括预选择对KDC进行身份验证的相同方法

-c cache_name  使用cache_name作为Kerberos 5 认证材料(ticket)的缓存位置。如果没有用这个选项,那么使用默认的位置。

默认的cache位置跟系统而变化。如果设置了KRB5CCNAME环境变量,则用这个值来定位默认cache的位置。如果指定了principal名称,并且默认缓存的类型支持一个集合(例如DIR类型),则将选择一个包含该principal的凭据的现有cache,或者创建一个新的缓存并变成新的主缓存。 否则,kinit会破坏默认高速缓存的任何现有内容。

-S service_name 指定一个当获取初始化的tickets时使用的可选的服务名

-X attribute[=value]

-s start_time

-r renewable_file

-f 请求可转发的tickets

-F 请求不可转发的tickets
-p 请求可代理的tickets

 

4 klist

列出缓存的Kerberos tickets

用法:

klist [-e] [[-c] [-l] [-A] [-f] [-s] [-a [-n]]] [-C] [-k [-t] [-K]] [-V] [cache_name|keytab_name]

描述:

-e 展示在认证cache中的每个认证(或keytab文件中的每个key)的session key和ticket的加密类型

-l 如果cache集合可用,则展示一个描述存在集合中的cache的表

-A 如果cache集合可用,则展示集合中的所有的cache的内容

-c 列出存在认证cache中的tickets。如果没有指定-c或者-k选项,这个是默认行为。

-f 展示认证中的标志,使用如下的缩写:

                 F    Forwardable
                 f    forwarded
                 P    Proxiable
                 p    proxy
                 D    postDateable
                 d    postdated
                 R    Renewable
                 I    Initial
                 i    invalid
                 H    Hardware authenticated
                 A    preAuthenticated
                 T    Transit policy checked
                 O    Okay as delegate
                 a    anonymous

-s 让klist静默运行,如果认证cache不可读或者已经过期则1退出;否则0退出

-a 展示认证中的所有的地址列表

-n 展示数字地址而不是反向解析地址

-C 当klist遇到配置数据的时候,列出已经被存在认证cache中的配置数据。默认情况下,配置数据不列出来。
-k 列出keytab文件中的keys

-i 和-k一起使用,如果没有指定名字,默认是使用默认的client keytab,而不是默认的acceptor keytab。

-t 展示keytab文件中的每个keytab入口中的时间戳

-K 展示keytab文件中的每个keytab入口中的加密key的值

-V 展示Kerberos版本并退出

如果cache_name 或者keytab_name没有指定,klist将展示在默认认证cache或者keytab文件中的认证信息。如果设置了KRB5CCNAME环境变量,其值用来定位默认的ticket cache。

默认使用的文件位置
       FILE:/tmp/krb5cc_%{uid}
              Default location of Kerberos 5 credentials cache 默认的Kerberos5认证cache位置。

       FILE:/etc/krb5.keytab
              Default location for the local host's keytab file. 默认的本地主机的keytab文件位置。

 

5 kdestroy

销毁Kerberos tickets

用法:

kdestroy [-A] [-q] [-c cache_name]

描述:

kdestroy工具通过覆写和删除包含用户的活跃的Kerberos认证ticket的认证cache来销毁。如果没有指定认证cache,则销毁默认的认证cache。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值