自从我使用它已经有一段时间了,而且我只将它用于不包含Web管理部分的IIS 6。您可以修改远程管理URL和端口,并在外部防火墙处将其阻止。请参阅:定制和保护远程服务。它的主要安全机制似乎是用户帐户安全性,但是就像您说的那样,它们都在IIS中,因此IIS漏洞可能导致安全措施在修补之前无法使用。仅出于这个原因,我会犹豫是否允许从Internet更新Web内容,但这取决于组织的安全要求与Web开发人员的需求。
为了避免将Web部署服务公开到Internet,可以执行以下操作:
- 让默认网站侦听未经过NAT转换或负载平衡IP范围一部分的仅内部IP
- 您可以让默认管理网站仅在localhost上侦听,然后编写一个脚本,该脚本在每个主机上调用msdeploy可执行文件以在本地运行(而不是使用msdeploy从单个点远程连接到所有主机)
- 让您的负载均衡器过滤尝试访问Web部署URL的外部请求(例如https:// server:8081 / MSDeploy)
- 有指定的(内部)部署主机所有的Web部署从哪里来,只允许IP连接上的部署URL您的网络服务器(块东西不是从单个部署主机)
如果仍然需要直接从Internet获得Web部署功能,请说您所有的Web开发人员是否都在远程工作((我无法想象为什么直接需要这样做)(随着VPN的广泛使用),您可以有一个两阶段的部署过程,在其中建立一个隔离的DMZ,其中装有启用了Web Deploy的IIS 7框(与Web场的DMZ分开),并允许您的Web开发人员从互联网仅连接到该DMZ即可远程部署更改。然后,您可以在检查更改,测试等之后内部连接到该主机并部署到其余的Web服务器。即使这种方法也并非没有风险-恶意用户最终可能会损害Web部署功能,从而引入了一些缺陷。恶意代码会在您不知情的情况下出现,您可能会在不知不觉中将其引入生产环境。