1.5.3. 对 Samba 客户端启用证书自动注册
在 Samba 客户端上启用证书自动注册,以便从 Active Directory (AD)证书颁发机构(CA)自动注册证书请求和续订。此功能通过在没有手动监控或用户交互的情况下管理证书来防止中断。
如果 AD 提供证书颁发机构(CA),且 RHEL 主机是 AD 的成员,您可以启用证书自动注册。在 RHEL 主机上启用此功能。然后,Samba 从 AD 应用自动注册组策略,并配置 certmonger 服务来请求和管理证书。
先决条件
- Samba 配置为 AD 的成员。
AD 中的 Windows 服务器有安装了以下服务的 Active Directory Certificate Services 服务器角色:
- 证书颁发机构
- 证书注册
- 策略 Web 服务
- 互联网信息服务(ISS)被配置为通过 HTTPS 提供证书自动注册功能。
- ISS 使用 AD CA 发布的证书。
- 证书注册服务支持 Kerberos 身份验证。
- AD 中配置了证书自动注册的组策略对象(GPO)。
流程
安装
samba-gpupdate软件包:# dnf install samba-gpupdate将以下设置附加到
/etc/samba/smb.conf文件中:kerberos method = secrets and keytab sync machine password to keytab = "/etc/krb5.keytab:account_name:sync_spns:spn_prefixes=host:sync_kvno:machine_password", "/etc/samba/cepces.keytab:account_name:machine_password" apply group policies = yesSamba 配置中指定的设置包括以下配置:
kerberos method = secrets and keytab-
将 Samba 配置为首先使用
/var/lib/samba/private/secrets.tdb文件来验证 Kerberos 票据,然后验证/etc/krb5.keytab文件。 sync machine password to keytab = <list_of_keytab_files_and_their_principals>-
定义 Samba 在这些文件中维护的 keytab 文件的路径和 Kerberos 主体。使用显示的值时,Samba 继续维护
/etc/krb5.keytab系统 keytab,另外还有/etc/samba/cepces.keytab文件。certmonger的cepces-submitsubmitted helper 使用此文件向 CA 进行身份验证。 apply group policies = yes-
配置
winbind服务,以间隔运行gpupdate命令。更新间隔为 90 分钟,以及 0 到 30 分钟之间的一个随机偏移。
创建
/etc/samba/cepces.keytab文件:# net ads keytab create编辑
/etc/cepces/cepces.conf文件,并进行以下更改:在
[global]部分中,将server变量设置为运行 CA 服务的 Windows 服务器的完全限定域名(FQDN):[global] server=win-server.ad.example.com在
[kerberos]部分中,将keytab变量设置为/etc/samba/cepces.keytab:[kerberos] keytab=/etc/samba/cepces.keytab
启用并启动
certmonger服务:# systemctl enable --now certmongercertmonger服务从 CA 请求证书,并在证书过期前自动更新它们。手动运行
samba-gpupdate,以确保组策略已从 AD 加载:# samba-gpupdatecertmonger服务将密钥和证书存储在以下目录中:-
私钥:
/var/lib/samba/private/certs/ 颁发的证书:
/var/lib/samba/certs/您现在可以在同一主机上的服务中使用密钥和证书。
-
私钥:
可选:显示
certmonger管理的证书:# getcert listNumber of certificates and requests being tracked: 1. Request ID 'AD-ROOT-CA.Machine': status: MONITORING stuck: no key pair storage: type=FILE,location='/var/lib/samba/private/certs/AD-ROOT-CA.Machine.key' certificate: type=FILE,location='/var/lib/samba/certs/AD-ROOT-CA.Machine.crt' CA: AD-ROOT-CA issuer: CN=AD-ROOT-CA,DC=ad,DC=example,DC=com subject: CN=rhel9.ad.example.com issued: 2025-03-25 14:22:07 CET expires: 2026-03-25 14:22:07 CET dns: rhel9.ad.example.com key usage: digitalSignature,keyEncipherment eku: id-kp-clientAuth,id-kp-serverAuth certificate template/profile: Machine profile: Machine pre-save command: post-save command: track: yes auto-renew: yes默认情况下,Windows CA 只使用
Machine证书模板颁发证书。如果您在适用于此主机的 Windows CA 中配置了额外的模板,certmonger会请求这些模板的证书。getcert 列表输出还包括它们的条目。