1199 字
6 分钟
Kerberos优化
2025-12-08

知识解析#

  1. 什么是 Kerberos?

    Kerberos 是一种网络认证协议,用于在非安全网络环境中对用户和服务进行身份验证。它通过“票据(ticket)”机制实现双向认证,避免密码在网络上明文传输,提高系统安全性。

  2. Kerberos 的核心组件:

    KDC(Key Distribution Center):包含认证服务(AS)和票据授予服务(TGS),负责发放和管理票据。

    Realm(领域):Kerberos 管理的逻辑网络范围,如 kdc.com。

    Principal(主体):用户或服务的唯一身份标识,如 alice@kdc.com

    Keytab 文件:存储服务主体密钥的文件,用于无密码认证。

  3. 主备 KDC 的作用:

    主 KDC:处理所有认证请求和票据发放,管理数据库。

    备 KDC:作为主 KDC 的冗余节点,在主节点故障时接管服务,实现高可用性。

  4. 故障转移(Failover)机制:

    客户端配置多个 KDC 地址后,会在主 KDC 不可用时自动尝试备用 KDC,确保认证服务不中断。

  5. 时间同步的重要性:

    Kerberos 依赖严格的时间同步(通常使用 NTP),防止票据因时间偏差被拒绝。票据具有生命周期(如 24 小时),超时将失效。

  6. kadmin.local 工具:

    本地管理工具,用于在不经过认证的情况下直接操作 Kerberos 数据库,适用于初始配置和管理员主体创建。

  7. krb5.conf 配置文件结构:

    [libdefaults]:设置默认领域和票据生命周期。

    [realms]:定义各领域的 KDC 和 admin server 地址。

    [domain_realm]:域名与领域的映射关系。

  8. kpropd 与数据库同步:

    用在主备 KDC 之间同步 Kerberos 数据库,确保备节点数据与主节点一致。

任务拓扑#

起起落落

任务环境#

主KDC服务器:K1(rocky9.2)

主机名:k1.internet.com

IP地址:10.1.1.128/24

备KDC服务器:K2(rocky9.2)

主机名:k2.internet.com

IP地址:10.1.1.129/24

客户机:A1(rocky9.2)

主机名:a1.internet.com

IP地址:10.1.1.130/24

任务要求#

  1. 服务器基本配置(IP地址设置、FQDN);
  2. 在k1、k2、a1上修改hosts文件,配置时间同步;
  3. 在K1上部署KDC服务,创建名为kdc.coom的kerberos领域,并设置默认票据生命周期为1天;
  4. 在K2上部署KDC服务,配置其为K1的备份节点;
  5. 在K1上使用kadmin.local工具,创建管理员主体 admin/admin@kdc.com、用户主体 alice@kdc.com 及服务主体 host/a1.internet.com@kdc.com
  6. 在主KDC上配置客户端故障转移(指定k1和k2),为服务主体生成keytab文件,并将其安全部署至客户机A1;
  7. 在A1上安装Kerberos客户端,配置其指向主备KDC,并分别测试从用户alice和服务主体发起的认证,验证主备KDC的故障转移功能是否正常;

操作步骤#

  1. 服务器基本配置(IP地址设置、FQDN)

    (略)

  2. 修改hosts文件,配置时钟同步

    在k1、k2、a1上修改hosts文件

    img

    img

    在k1上配置主时间服务器

    img

    图形用户界面, 文本, 应用程序  AI 生成的内容可能不正确。

    开启并重启服务

    img

    在k2、a1上配置时间服务

    文本  AI 生成的内容可能不正确。

    开启并重启服务

    img

  3. 在k1上部署KDC服务

    img

  4. 创建Kerberos数据库并创建密码

    文本  AI 生成的内容可能不正确。

  5. 配置KDC服务

    修改krb5.conf主配置文件

    img

    设置客户端请求票据默认有效期为24h

    img

    设置默认使用的kerberos领域

    img

    设置按顺序自动故障转移,并指定kadmin管理服务地址

    文本  AI 生成的内容可能不正确。

    修改kdc.conf配置文件

    img

    设置KDC.COM领域并强制服务端最大生命周期为24h

    img

    修改kerberos数据库权限管理配置文件,并设置admin主体拥有完全管理权限

    img

    img

  6. 在k1上创建kerberos主体

    创建必要账户

    img

    启动kerberos服务

    img

  7. 在k2.internet.com上安装KDC服务

    img

  8. 修改主配置

    img

    文本  AI 生成的内容可能不正确。

  9. 创建Kerberos数据库并创建同k1数据库的密码

    img

  10. 在k1.internet.com上导出数据库

    文本  AI 生成的内容可能不正确。

  11. 在k2.internet.com上导入数据库

    img

  12. 设置只允许主KDC传播数据库更新

    img

    img

  13. 启动kerberos服务

    img

  14. 在a1上安装kerberos客户端

    img

  15. 复制k1的配置文件

    文本  AI 生成的内容可能不正确。

  16. 在k1上生成keytab并部署至a1

    img

    img

    img

    img

测试#

  1. 测试用户密码认证

    img

  2. 测试keytab认证

文本  AI 生成的内容可能不正确。

  1. 断开k1,测试备服务

    img

    图形用户界面, 文本, 应用程序, 聊天或短信  AI 生成的内容可能不正确。

  2. 测试时间同步

    屏幕上有字  AI 生成的内容可能不正确。