美文网首页
Kerberos的安装与配置

Kerberos的安装与配置

作者: 睡不醒的大橘 | 来源:发表于2020-06-10 23:12 被阅读0次

上一节 介绍了kerberos的认证原理与步骤。这节会安装并配置一个kerberos KDC和client,来帮助更好地理解kerberos,熟悉kerberos的基本命令。

基本环境

一台虚拟机作为KDC 服务器, 一台虚拟机作为需要被KDC认证的 client。

KDC 的安装与配置

  1. 安装Kerberos:
yum install krb5-server krb5-libs krb5-auth-dialog
  1. 配置kdc.conf

默认路径:/var/kerberos/krb5kdc/kdc.conf ,示例:

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 EXAMPLE.COM = {
  #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
  supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

  • EXAMPLE.COM是一个realm。大小写敏感。
  • 由于aes256-cts验证方式需要安装额外的jar包,这里先把它去掉。
  • 其它配置解释可参考官网
  1. 配置krb5.conf

默认路径:/etc/krb5.conf。包含Kerberos的配置信息。例如,KDC的位置,Kerberos的admin的realms 等。需要所有使用的Kerberos的机器上的配置文件都同步。示例:

includedir /etc/krb5.conf.d/

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

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
 default_realm = EXAMPLE.COM
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
  • [realms]:列举使用的realm
  • kdc = kerberos.example.com,是kdc所在服务器的hostname (需要在/etc/hosts里配置)
  • 其它配置解释可参考官网
  1. 初始化Kerberos database
/usr/sbin/kdb5_util create -s -r EXAMPLE.COM
  • [-s]表示生成stash file,并在其中存储KDC database master key;还可以用[-r]来指定一个realm name —— 当krb5.conf中定义了多个realm时才是必要的。
  • 运行过程中会让输入KDC database master key
  • 当Kerberos database创建好后,可以看到目录 /var/kerberos/krb5kdc 下多生成了几个文件:
principal                #db file
principal.kadm5          #administrative db file
principal.kadm5.lock     #administrative db lock file
principal.ok             #db file
.k5.EXAMPLE.COM          #stash file
  1. 添加database admin用户
[root@192 dev]#  kadmin.local
kadmin.local:  addprinc  admin/admin@EXAMPLE.COM
  1. 启动服务
systemctl start krb5kdc
systemctl start kadmin
  1. 为用户创建一条principle
[root@192 dev]# kadmin
Authenticating as principal admin/admin@EXAMPLE.COM with password.
Password for admin/admin@EXAMPLE.COM: 
kadmin:  add_principal test/test@EXAMPLE.COM           #增加一个principle
WARNING: no policy specified for test/test@EXAMPLE.COM; defaulting to no policy
Enter password for principal "test/test@EXAMPLE.COM":                     #输入该principal的master key
Re-enter password for principal "test/test@EXAMPLE.COM": 
Principal "test/test@EXAMPLE.COM" created.
kadmin:  list_principals                               #列出所有的principle
K/M@EXAMPLE.COM
admin/admin@EXAMPLE.COM
kadmin/192.168.182.130@EXAMPLE.COM
kadmin/admin@EXAMPLE.COM
kadmin/changepw@EXAMPLE.COM
kiprop/192.168.182.130@EXAMPLE.COM
krbtgt/EXAMPLE.COM@EXAMPLE.COM
test/test@EXAMPLE.COM

Client的安装与配置

  1. 安装Kerberos:
yum install krb5-workstation krb5-libs krb5-auth-dialog -y
  1. /etc/krb5.conf与KDB server一致

  2. 通过AS(Authentication Service)认证

1)一种方式是输入密码

[root@193 dev]# kinit test/test
Password for test/test@EXAMPLE.COM: 
  • 输入的password就是上节所说的Client Master Key

2)第二种方式是通过Keytab文件

在KDC server 的/root/test.keytab路径下生成Keytab文件:

kadmin.local -q "xst -k /root/test.keytab test/test@EXAMPLE.COM"

复制该keytab文件到client该路径中

Client通过Keytab通过AS认证:

kinit -kt /root/test.keytab test/test
  1. 通过klist命令查看登录状态
[root@193 dev]# klist
Ticket cache: KEYRING:persistent:0:krb_ccache_Y6dC1G6
Default principal: test/test@EXAMPLE.COM

Valid starting       Expires              Service principal
2020-06-10T22:57:00  2020-06-11T22:57:00  krbtgt/EXAMPLE.COM@EXAMPLE.COM

相关文章

网友评论

      本文标题:Kerberos的安装与配置

      本文链接:https://www.haomeiwen.com/subject/yggmtktx.html