1. 安装
kerberos基于client-server模式, 所以每台服务器都需要安装client, server挑一台服务器即可
yum -y install krb5-server krb5-libs krb5-workstation
配置文件
- /etc/krb5.conf
- /var/kerberos/krb5kdc/kdc.conf
- /var/kerberos/krb5kdc/kadm5.acl
2. 配置krb5.conf
vi /etc/krb5.conf
- kerberos可以有多个命名空间(realm)
- 配置default_realm, 不指定realm时默认的命名空间
- ticket_lifetime, 票据有效时间, 默认1天
- renew_lifetime, 票据最大延期时间, 默认1周
3. 配置kdc.conf
vi /var/kerberos/krb5kdc/kdc.conf
指定kdc监听端口88
4.初始化kerberos数据库
/usr/sbin/kdb5_util create -s -r EXAMPLE.COM
生成4个printcipal开头的文件
如果需要重建数据库, 将4个文件删除即可, 再次执行
/usr/sbin/kdb5_util create
命令
[root@localhost ~]# ll /var/kerberos/krb5kdc
total 24
-rw-------. 1 root root 22 Nov 4 2016 kadm5.acl
-rw-------. 1 root root 451 Nov 4 2016 kdc.conf
-rw-------. 1 root root 8192 Nov 11 20:28 principal
-rw-------. 1 root root 8192 Nov 11 20:28 principal.kadm5
-rw-------. 1 root root 0 Nov 11 20:28 principal.kadm5.lock
-rw-------. 1 root root 0 Nov 11 20:29 principal.ok
5. 创建用户
[root@localhost ~]# kadmin.local
Authenticating as principal root/admin@EXAMPLE.COM with password.
kadmin.local: addprinc admin/admin
WARNING: no policy specified for admin/admin@EXAMPLE.COM; defaulting to no policy
Enter password for principal "admin/admin@EXAMPLE.COM":
Re-enter password for principal "admin/admin@EXAMPLE.COM":
Principal "admin/admin@EXAMPLE.COM" created.
kadmin.local:
6. 启动kdc服务
systemctl start krb5kdc
systemctl start kadmin
7. 验证kdc服务
使用klist查看, 没有票据信息
[root@localhost ~]# klist
klist: Credentials cache keyring 'persistent:0:0' not found
通过kinit命令, 成功拿到票据, 可以看到过期时间为1天
[root@localhost ~]# kinit admin/admin
Password for admin/admin@EXAMPLE.COM:
[root@localhost ~]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin/admin@EXAMPLE.COM
Valid starting Expires Service principal
11/11/2021 21:02:14 11/12/2021 21:02:14 krbtgt/EXAMPLE.COM@EXAMPLE.COM