使用Samba 4作为Windows“域名成员”,我想自动部署keytabs。 具体来说,我想相当于将服务主体添加到适当的表。 例如,
# kadmin -k /etc/squid/proxy.keytab -w secret -p kadmin/admin -q "ktadd HTTP/proxy.my.domain"
可悲的是,MS似乎没有提供kadmin互操作性。 桑巴有类似的命令
# net rpc vampire keytab all.keytab -U Administrator%secret # net ads keytab create -U Administrator%secret
然而这两者似乎都不能有select地提取服务主体。 另外,对于非平凡的网站安装,我想象“吸血鬼”方法需要太多的系统资源,更不用说使用ktutil进行必要的后处理。
在我的testing设置中,DC是Windows2008服务器,客户端运行的是3.14-ish Linux,MIT KRB5 1.15.x和Samba 4.x. 有问题的kerberized服务是Squid v3.5.x. 在DC( ktpass )上创build密钥表后,Kerberos集成本身可以很好地工作,然后手动将它们复制到每台机器上。 但我宁愿避免这种行人方式。
它不一定是基于Samba的解决scheme。 这只是我正在调查ATM的path。
关于你当前正试图做的唯一困难的部分是从你正在创build密钥表的帐户/主体提取现有的密码。 剩下的信息可以通过msDS-KeyVersionNumber和servicePrincipalName属性通过LDAP查询直接获得。
假设帐户中的当前密码没有被设置,那么您可以将其重置/随机化为自动化过程生成的内容。 然后,您只需使用ktutil使用现在已知的密码和查询的KVNO和SPN创build密钥表。