Kerberos

发布时间 2023-10-25 11:25:16作者: 黑水滴

一、Kerberos简介

Kerberos是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其它服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务如HBase/HDFS等)。Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于Kerberos协议在每个Client和Service之间具有共享密钥,使得该协议具有相当的安全性。

(1)Kerberos是一种客户端/服务端架构。

(2)KDC:密钥分发中心(Key distribution Center),由三部分构成:Kerberos数据库、认证服务(Authentication service,AS)和票据授予服务(ticket-granting service,TGS)

(3)principal:主体,Kerberos中的身份标识称为主体。

(4)realm:域,确定了管理边界,所有主体均属于特定的Kerberos域。

(5)主体和域的信息存储在Kerberos数据库中。

(6)TGT:票据授予票据,AS认证成功后授予用户的一种特殊票据

二、安装配置Kerberos

1、下载安装

yum install krb5-server krb5-libs krb5-auth-dialog krb5-workstation -y

2、配置/etc/krb5.conf,修改以下参数。Master和Worker都需要配置,内容相同

default_realm:默认的realm。如PSVMC.CN

kdc:KDC 服务器的主机名或 IP 地址

admin_server:kadmind 服务器地址,默认与 kdc 相同

[domain_realm]:将域名映射到 realm域

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = PSVMC.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 10000d
renew_lifetime = 10000d
forwardable = true

[realms]
PSVMC.CN = {
   kdc = 192.168.7.104:88
   admin_server = 192.168.7.104:749
}

[domain_realm]
.psvmc.cn = PSVMC.CN
psvmc.cn = PSVMC.CN

3、配置kdc.conf,仅Master节点。

路径vi /var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88

[realms]
 PSVMC.CN = {
    #master_key_type = aes256-cts
    acl_file = /var/kerberos/krb5kdc/kadm5.acl
    dict_file = /usr/share/dict/words
    admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
    max_life = 10000d
    max_renewable_life = 10000d
    supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}

4、配置kadm5.acl:用于设置哪些用户具有管理Kerberos数据库的权限

路径:vi /var/kerberos/krb5kdc/kadm5.acl

内容:*/admin@PSVMC.CN   *

配置描述:

  第一列表示主体名,此处代表名称匹配`*/admin@PSVMC.CN`

  第二列表示权限,*代码全部权限,其它的话参考下面列表。小写字母代表授予权限,大写表示拒绝权限

权限   说明
a 向KDC数据库添加用户 
d 从KDC数据库中删除用户
m 修改KDC数据库中的用户
c 修改KDC数据库中的principal(主体)密码
i 查询数据库,列举principal(主体)信息
*|x 以上所有权限

  第三列为可选的,表示权限应用的目标实体,此处没有设置

三、Kerberos操作

1、创建Kerberos数据库,需要设置管理员密码,创建成功会在/var/Kerberos/krb5kdc/生成一些文件

如重新创建,则先删除历史的某些文件
cd /var/kerberos/krb5kdc/
rm -rf principal*

 第一次新建:在root用户下执行以下命令

 kdb5_util create -s -r PSVMC.CN