很长一段时间以来,我一直在编写 WCF 服务供内部使用(与 WinForms 和 MVC Web 应用程序一起)。但是,我现在需要将其中一项服务暴露给未洗过的人!
由于这是来自单一来源的公司,我提出以下建议:
建筑学
- 公司使用 VPN 通过 HTTPS/SSL 向我们的 DMZ 服务器发送请求
- DMZ 防火墙只允许特定的公司 IP
- DMZ IIS 服务器将请求传递给我们的内部 IIS 服务器
- 内部防火墙只允许 DMZ 服务器 INTERNAL FACING IP
- 内部 IIS WCF 服务使用请求并将响应发送回链。
但是,我的 IT 经理想要的远不止这些,还有更多……细节。
例如
- 使用或创建什么帐户,以及授予他们什么权限。
- 如何限制面向公众的 IIS 服务器免遭 DoS、黑客攻击等。
- 如何阻止面向公众的 IIS 服务器意外显示“安全”详细信息
- 在服务器/IIS 内部关闭什么
- 限制访问哪些文件,例如 trace.axd
我也能理解他的理由——如果一切顺利,那么他拿着罐子……这意味着最终我拿着罐子!从大型机和 IBM/Websphere 的背景来看,他所听到的只是 IIS 是如何“不安全”的。
我怀疑他真正听到的是“开发人员/管理员没有正确保护 IIS/WCF”......所以我想尝试“正确”地做到这一点!
(有关信息,我正在浏览Troy Hunt 的帖子……但这里有很多内容!我尝试过 MSDN 的大量“儿童绘图纸”,发现很难从无尽的信息中提取我需要知道的内容“让这一段更长,听起来更重要,同时隐藏突出的事实”填充在那里!)