方案
我有一个我已经开发了两年的应用程序。我使用框架.NET以一种来自Pascal的名为Oxygene的语言开发它。 当我的代码中有新内容时,我会在文件系统方法中发布我的应用程序。我有几台服务器在Amazon EC2上运行,因此我将这些文件传输到IIS服务器中的文件夹。在这个IIS服务器中,我已经拥有一个与我的应用程序对应的网站,所以我只需要替换最新文件的旧文件。 我有另一台服务器作为SQL服务器。 最后的细节是,在我的应用程序中,用户可以附加文件,导入图片,导出PDF和Excel文件。附件和图片存储在应用程序所在的同一文件夹中。
问题
这是我的问题。我有一个新客户,是一个大客户。看起来该公司具有强大的IT安全性,因此应用程序必须位于其服务器中。 最大的问题是他们需要在以下架构中设置我的应用程序:
我习惯只使用应用服务器(适用于外部访问)和SQL服务器。他们想要DMZ网络中的第三台服务器,以便他们可以进行外部访问。应用程序无法放入DMZ的原因是因为我提到的文件存在于用户存储在应用程序中的文件中。数据库存储所有数据,但不存储提到的那些文件。
我提供的解决方案,但未被接受:
在位于DMZ中的IIS服务器中发布应用程序:由于我的应用程序将用户附件存储在应用程序所在的同一文件夹中,因此无法接受该应用程序。还有存储在那里的图像。
在应用服务器中发布应用程序,但也在DMZ服务器中发布一个空应用程序,重定向到局域网内的IIS服务器:这是我提出的最佳解决方案。< / EM>
使用反向代理来保护LAN网络:这不在桌面上,因为反向代理根本不安全。
我有点困惑,因为我无法找到将我的应用程序分成两部分的方法,以使其在建议的架构中运行。
任何人都可以给我一些关于如何运作的提示或想法吗?
答案 0 :(得分:0)
您无法重定向&#34;在局域网内部,重定向是客户端操作,因此如果内部服务器尚未公开,则无法将某人重定向到该服务器。
反向代理可能是您最好的选择。为什么你认为它不安全?这是一个经过验证的解决方案,它允许您将其他端口/服务留给内部请求(例如文件服务器,它听起来就像您试图公开的那样)。
这些文件是如何上传的?你在用FTP吗? SMB? HTTP?该解决方案不会将这些其他协议暴露给外界(请不要将SMB暴露给外部,这将导致悲剧)。外部用户是否需要上传这些文件?