1

设想

我有一个应用程序,我已经开发了两年。我使用框架 .NET 以来自 Pascal 的称为 Oxygene 的语言开发它。当我的代码中有新内容时,我会以文件系统方法发布我的应用程序。我有几台服务器在 Amazon EC2 上运行,因此我将这些文件传输到我的 IIS 服务器中的一个文件夹中。在这个 IIS 服务器中,我已经有一个与我的应用程序对应的网站,所以我只需将旧文件替换为最新文件。我有另一台用作 SQL 服务器的服务器。最后一个细节是,在我的应用程序中,用户可以附加文件、导入图片、导出 PDF 和 Excel 文件。附件和图片存储在应用程序所在的同一文件夹中。

问题

这是我的问题。我有一个新客户,这是一个大客户。看起来这家公司有很强的 IT 安全性,所以应用程序必须位于他们的服务器中。最大的问题是他们要求我的应用程序设置在以下架构中: 非军事区

我习惯只使用一个应用服务器(适用于外部访问)和一个 SQL 服务器。他们想要 DMZ 网络中的第三台服务器,这样他们就可以让外部访问发生。应用程序不能放在 DMZ 中的原因是因为有我在下面提到的用户存储在应用程序中的文件。数据库存储所有数据,但不存储提到的那些文件。

我已提供但不被接受的解决方案:

  • 在位于 DMZ 的 IIS 服务器中发布应用程序:这不会被接受,因为我的应用程序将用户附件存储在应用程序所在的同一文件夹中。那里还存储有图像。

  • 在应用服务器中发布应用程序,同时在 DMZ 服务器中发布一个空应用程序,重定向到局域网内的 IIS 服务器:这是我想出的最佳解决方案。

  • 使用反向代理来保护 LAN 网络:这是不可能的,因为反向代理根本不安全。

我有点困惑,因为我看不到将我的应用程序分成两部分以使其在建议的架构中工作的方法。

任何人都可以给我一个提示或想法,这将如何工作?

    -
4

1 回答 1

0

您不能“重定向”到 LAN 内部,重定向是客户端操作,因此如果内部服务器尚未公开,则无法将某人重定向到它。

反向代理可能是您最好的选择。为什么你认为它不安全?这是一个久经考验的解决方案,它允许您将其他端口/服务留给内部请求(例如文件服务器,听起来您正在尝试公开)。

这些文件是如何上传的?你在使用 FTP 吗?中小企业?HTTP?此方案不会将那些其他协议暴露给外界(请不要将 SMB 暴露给外界,否则会导致悲剧)。外部用户是否需要上传这些文件?

于 2017-09-14T13:36:53.850 回答