将服务主体从 AD 提取到 keytab

将服务主体从 AD 提取到 keytab

以 Windows“域成员”的身份使用 Samba 4,我希望自动部署密钥表。具体来说,我希望相当于将服务主体添加到相应的表中。例如

# kadmin -k /etc/squid/proxy.keytab -w secret -p kadmin/admin -q "ktadd HTTP/proxy.my.domain"

遗憾的是,MS 似乎不提供kadmin互操作性。Samba 有以下命令

# net rpc vampire keytab all.keytab -U Administrator%secret
# net ads keytab create -U Administrator%secret

然而,这两种方法似乎都无法选择性地提取服务主体。此外,对于一个不简单的站点安装,我认为“吸血鬼”方法需要太多的系统资源,更不用说使用工具

在我的测试设置中,DC 是 Windows2008 服务器,客户端运行 3.14-ish Linux、MIT KRB5 1.15.x 和 Samba 4.x。有问题的 Kerberos 服务是 Squid v3.5.x。在 DC 上创建密钥表时,Kerberos 集成本身运行良好(密码),然后手动将它们复制到每台机器上。但我宁愿避免这种平淡无奇的方法。

它不一定是基于 Samba 的解决方案。这只是我正在研究的 ATM 路径。

答案1

您当前尝试执行的操作中唯一困难的部分是从您为其创建密钥表的帐户/主体中提取现有密码。其余信息可通过msDS-KeyVersionNumberservicePrincipalName属性针对 DC 的 LDAP 查询轻松获得。

假设帐户的当前密码不是固定不变的,您可以将其重置/随机化为自动化流程生成的密码。然后,您只需使用 ktutil 使用现在已知的密码和查询到的 KVNO 和 SPN 创建密钥表即可。

相关内容