我们正在评估msdeploy Web部署代理服务的使用情况,以便自动部署到我们的生产服务器。
我们无法find的一件事是潜在的安全影响。
首先,我们的Web服务器当然是安全的(位于防火墙和负载均衡器之后),所以只能从外部访问http(s)stream量。
尽pipe如此,Web部署代理运行与IIS(唯一面向外部)集成,因为它可以通过http(s)访问。 所以我们担心,通过托pipe在IIS上的networking可能有可能访问代理,从而获得对我们所有网站的读写权限。
msdeploy在生产环境中的使用安全性如何?
更新:生产Web服务器正在运行IIS7。
我使用它已经有一段时间了,我只用它与不包含Webpipe理部分的IIS 6。 您可以修改远程pipe理URL和端口,并在外部防火墙处阻止它。 看到这个: 自定义和保护远程服务 。 它的主要安全机制似乎是用户帐户的安全性,但正如你所说,这一切都在IIS内,所以IIS漏洞可能会使安全措施无效,直到打补丁。 仅仅因为这个原因,我会犹豫是否允许从互联网上更新网页内容,但是这取决于你的组织的安全要求与你的网站开发者的需求。
为避免将Web部署服务暴露给互联网,您可以执行以下操作:
如果仍然需要从互联网上直接获得networking部署function,那么就说你的所有networking开发人员都是远程工作的(我无法想象为什么直接使用VPN需要这样做),那么你可以有一个2阶段部署过程,您可以在其中设置独立的DMZ(带有Web Deploy的IIS 7框)(与Web场的DMZ分开),并允许Web开发人员仅连接到互联网上的DMZ以远程部署更改。 然后,您可以在内部连接到该主机,并在审查更改,testing等之后将其部署到其他Web服务器。即使这种方法也不是没有风险 – 恶意用户最终可能会损害Web部署function,恶意代码在您不知情的情况下,您可能会不知不觉地将其引入您的生产环境。
简单的答案。 是的,任何在计算机上运行的东西都会打开攻击媒介。 应该总是假定软件存在漏洞。 缓解是一个关键因素,限制访问networking,用户,计算机,IP等。另外检查物理访问。
如果您的防火墙可以处理一天中特定时间的规则,则还可以限制允许更新的时间。
我build议限制您的Web服务器上的用户,即谁可以做更新。 (你可能已经这样做了)然后,我将使用防火墙来限制哪些networking(IP)可以访问pipe理界面。 如果支持,我只允许在工作时间处理更新(通过防火墙规则)。 请注意,您始终可以让防火墙pipe理员编辑紧急更新的规则。 最后,我会监视Web部署代理中的已知漏洞并进一步减轻,或者在修复可以实施之前将其禁用。