11.14. Kerberos 集成
Kerberos 是一种计算机网络安全协议,提供集中身份验证服务器,向服务器验证用户,反之亦然。在 Kerberos 身份验证中,服务器和数据库用于客户端身份验证。
11.14.1. 设置 KDC (根据要求) 复制链接链接已复制到粘贴板!
Kerberos 作为第三方可信服务器运行,称为密钥分发中心(KDC),其中每个用户和服务都是主体。KDC 包含有关所有客户端(用户主体、服务主体)的信息,因此需要安全。在 Kerberos 设置中,因为 KDC 是单一故障点,建议有一个主 KDC 和多个从 KDC。
先决条件
验证 /etc/hosts
文件中是否进行了以下更改。如果需要,添加域名。
确保设置中的所有涉及的节点都存在域名(Ceph 集群中的所有节点和所有 NFS 客户端节点)。
流程
按照以下步骤安装和配置 KDC。如果您已安装和配置了 KDC,请跳过此部分。
检查您要设置 KDC 的机器上安装了所需的 RPM。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意- 最好根据 Kerberos REALM 名称具有域名。例如,Realm - PUNE.IBM.COM,管理员主体 - admin/admin。
- 编辑安装的配置文件,以反映新的 KDC。请注意,KDC 可以作为 IP 地址或 DNS 名称提供。
更新
krb5.conf
文件:注意您需要使用
krb5.conf
文件中的kdc
和admin_server
IP 更新所有域(default_realm
和domain_realm
)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
krb5.conf
文件:注意您需要更新
kdc.conf
文件中的域。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
kdb5_util
创建 KDC 数据库:注意确保主机名可以通过
DNS
或/etc/hosts
解析。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将管理员添加到 ACL 文件中:
cat /var/kerberos/krb5kdc/kadm5.acl */admin@PUNE.IBM.COM *
[root@host ~]# cat /var/kerberos/krb5kdc/kadm5.acl */admin@PUNE.IBM.COM *
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出表明,带有 admin 实例的 PUNE.IBM.COM 域中的任何主体都具有所有管理特权。
将管理员添加到 Kerberos 数据库中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
kdc
和kadmind
:krb5kdc kadmind
# krb5kdc # kadmind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
kdc
和kadmind
是否在正确运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查设置是否正确:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.14.2. 设置 Kerberos 客户端 复制链接链接已复制到粘贴板!
Kerberos 客户端计算机应该与 KDC 同步。确保使用 NTP 同步 KDC 和客户端。五分钟或更长时间差会导致 Kerberos 身份验证失败,并抛出时钟偏移错误。此步骤是所有要参与 NFS 客户端等 Kerberos 身份验证的系统(NFS Ganesha 容器将运行 NFS Ganesha 容器的主机)的先决条件。
流程
检查所需的 RPM
rpm -qa | grep krb5
[root@host ~]# rpm -qa | grep krb5 krb5-libs-1.20.1-9.el9_2.x86_64 krb5-pkinit-1.20.1-9.el9_2.x86_64 krb5-workstation-1.20.1-9.el9_2.x86_64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
krb5.conf
文件,类似于 KDC 服务器上的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证客户端设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.14.3. NFS 特定的 Kerberos 设置 复制链接链接已复制到粘贴板!
您需要为 NFS 服务器和客户端创建服务主体。对应的密钥存储在 keytab 文件中。这些主体需要设置 GSS_RPCSEC 所需的初始安全上下文。这些服务主体的格式与 nfs/@REALM 相似。您可以将 /etc/krb5.conf 文件从工作系统复制到 Ceph 节点。
流程
为该主机创建服务主体:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将密钥添加到 keytab 文件中:
注意在这一步中,您已位于 NFS 服务器上,并使用 kadmin 接口。在这里,keytab 操作反映了 NFS 服务器的 keytab。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在运行 NFS Ganesha 容器以及所有 NFS 客户端的所有 Ceph 节点上运行第 1 和 2 步。
11.14.4. NFS Ganesha 容器设置 复制链接链接已复制到粘贴板!
按照以下步骤在 Ceph 环境中配置 NFS Ganesha 设置。
流程
检索现有的 NFS Ganesha 容器配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改容器配置,将
/etc/krb5.conf
和/etc/krb5.keytab'
文件传递给主机中的容器。NFS Ganesha 将在运行时引用这些文件,以验证传入的服务票据并确保 Ganesha 和 NFS 客户端(krb5p)之间的通信。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使修改后的 nfs.yaml 文件在 cephadm shell 中可用:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证该文件是否有所需的更改:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将所需的更改应用到 NFS Ganesha 容器并重新部署容器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证重新部署的服务是否具有所需的更改:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改导出定义,使其具有
krb5*(krb5i、krb5i、krb5p)
安全类型:注意您可以在完成上述设置后创建此类导出。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.14.5. NFS 客户端侧操作 复制链接链接已复制到粘贴板!
以下是 NFS 客户端可以进行的一些操作。
流程
创建服务主体:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
rpc.gssd
服务,使修改/新 keytab 文件生效:systemctl restart rpc-gssd
# systemctl restart rpc-gssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载 NFS 导出:
语法
mount -t nfs -o vers=4.1,port=2049 <IP>:/<export_name> >mount_point>
[root@host ~]# mount -t nfs -o vers=4.1,port=2049 <IP>:/<export_name> >mount_point>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
mount -t nfs -o vers=4.1,port=2049 10.8.128.233:/ganesha /mnt/test/
mount -t nfs -o vers=4.1,port=2049 10.8.128.233:/ganesha /mnt/test/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建用户。挂载 NFS 导出后,常规用户将用于挂载的导出。这些常规用户(通常是系统中的本地用户或来自集中系统的用户(如 LDAP/AD)需要成为 Kerberos 设置的一部分。根据设置类型,还需要在 KDC 中创建本地用户。
11.14.6. 验证设置 复制链接链接已复制到粘贴板!
按照以下步骤验证设置。
流程
以普通用户身份访问导出,没有 Kerberos 票据:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以普通用户身份访问导出,使用 Kerberos 票据:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注意:在客户端上观察到 nfs/
服务的 Tickets。