对于stream浪汉来说,我相当陌生,有人对这个(和傀儡)有更多的了解,能够解释一下stream浪testing机器如何处理与实际生产机器相同的节点定义时,stream浪者如何处理ssl证书?
我以主人/客户模式运行木偶,我希望启动我的木偶制作节点的stream浪版本,主要是为了testing新的木偶代码。
如果我的生产机器,比如说sql.domain.com,我启动一个stream浪的机器,比如说sql.vagrant.domain.com。 然后在vagrant文件中使用puppet_server提供程序,并给puppet.puppet_node条目“sql.domain.com”以获取相同的puppet节点定义。
在puppet服务器上,我在该节点条目上使用类似于/*.sql.domain.com/的正则expression式,这样stream浪机器和真实的机器都可以在puppet服务器上获得该节点条目。
最后,我在puppet的autosign.conf中为* .vagrant.domain.com启用了自动签名,所以stream浪机器得到了签名。
到现在为止还挺好…
但是,如果我的networking上的一台机器获得了root权限,比如unimportant.domain.com,那么怎样才能阻止攻击者将该机器上的主机名更改为sql.vagrant.domain.com,删除旧的puppet ssl cert,然后使用给定的节点名称sql.domain.com重新运行木偶? 新的ssl证书将由puppet自动签名,匹配节点名正则expression式,然后这个被黑客入侵的节点将得到所有准备用于sql机器的多汁信息?!
我能想到的一个解决scheme是避免自动签名,并将真正的生产机器的已知puppet ssl证书放入vagrant共享目录,然后有一个stream浪ssh作业将其移动到位。 这样做的缺点是我最终得到了每个生产机器上的所有ssl证书,这些证书都坐在一个git repo(我的stream浪回购)中,从而在每个开发人员的机器上 – 这可能是也可能不是问题,但听起来不像正确的做法。
tl; dr :其他人如何处理stream浪汉和傀儡ssl证书用于开发或testing生产机器的克隆?
为其他可能遇到类似问题的人提供答案。 我最终使用主机专用networking安排,在主机上使用伪装(NAT),使主机专用networking也能与外界联系。
有一个stream浪的傀儡大师,使用自动签名 – 因为它是在自己的主机(vboxnet0)networking上,无论我在写什么stream氓木偶客户端代码,它都可以消除大部分的安全问题。
为了生产,真正的(非stream浪者)木偶只有git的生产分支,并且不允许任何自动签名。