我正在使用一个使用两台机器的 Web 应用程序,一台 BSD 服务器和一台 Windows 2000 服务器。当有人访问我们的网站时,他们会连接到 BSD 服务器,该服务器使用 Apache 的代理模块在他们和 Windows 服务器上的 Web 服务器之间中继请求和响应。这个想法(大约 9 年前设计和部署的)是,让外部人员连接到 BSD 服务器比运行 Web 应用程序的 Windows 服务器更安全。BSD 服务器是一个基本安装,删除了所有不必要的服务和应用程序。
这些服务器即将被替换,而最大的问题是,在这种设置中,精简的、最基本的服务器是否有必要保证安全。从我在网上的研究来看,我没有看到其他人运行这样的设置(至少我没有看到任何人对此提出质疑。)如果他们在用户和 Web 应用服务器之间有一台服务器,那么它就是缓存、压缩和/或负载平衡。让人们直接从互联网**连接到运行 Web 应用程序的 Windows 2008 R2 服务器,我是否忽略了什么?
** 互联网之间有良好的硬件防火墙,只开放最少的端口
谢谢。
答案1
如果您听取 mfinni 的建议并将您的服务器放在 DMZ 中(您当然应该这样做,并且您有一个不错的硬件防火墙,我认为这不会很难),答案仍然是“也许”。
我同意较少的如今,出于安全原因,IIS 比以前好多了。不过,它还是会给某些攻击带来麻烦,而您无疑会获得一些小小的安全益处。
另一方面,权衡一下,现在关键路径上有 3 个项目,而不是 2 个(防火墙、RProxy 和 Web 服务器)——如果任何一个出现问题,您就会失去服务。
您需要权衡小的安全收益与管理和可靠性风险。如果您有 >1 个 Web 服务器,或者正在代理上进行加速,我更倾向于保留它。就目前情况而言,听起来负责人(就是您)并不是特别热衷,也许更像是 Windows 用户(我猜是这样的,不要把这当作是挑衅或什么的),并且宁愿不去管理另一台不同的服务器。花更多时间照看 Web 服务器是否比摆弄代理更划算?
无论如何。这得由你决定 - 但我认为它提供的已经不足以让你被归类为必需品了。
答案2
嗯。我公司的安全和管理标准确实要求在任何 Web 服务器(无论是 IIS、WebSphere 还是其他)前面都安装 Apache 反向代理。
虽然对于您的情况,您也没有说 Windows 服务器位于 DMZ 中。如果不是,则立即执行此操作,无论您是否保留代理服务器。
答案3
简单回答:不
更长的回答:不 - 需要将 IIS 隐藏在 *nix 代理后面的日子现在已经完全过时了,假设您的 Web 应用程序相对安全,并且您很好地对 Windows 计算机进行了防火墙保护,那么从安全角度来看,将代理放在 Windows 计算机前面没有任何好处。唯一的好处是从性能/负载平衡的角度来看,但这听起来并不适用于此处。