Web服务器前面的反向代理会提高安全性吗?

第三方安全专业人员build议我们在Web服务器(全部在DMZ中托pipe)之前运行反向代理,作为最佳实践安全措施。

我知道这是一个典型的推荐架构,因为它在Web应用程序前面提供了另一种安全级别来防止黑客入侵。

但是,由于反向代理正在用户和内部Web服务器之间来回穿梭HTTP,所以它不会提供任何防止对Web服务器本身进行黑客攻击的措施。 换句话说,如果您的Web应用程序存在安全漏洞,则代理不会提供任何有意义的安全性。

考虑到Web应用程序攻击的风险远高于对代理的攻击风险,中间是否增加了一个额外的框,是否真的获得了很多? 我们不会使用反向代理的任何cachingfunction – 只是一个愚蠢的工具来回穿梭数据包。

还有什么我在这里失踪? 有反向代理HTTP数据包检查得到如此好,它可以检测到有意义的攻击没有主要的性能瓶颈,或者这只是安全剧场的另一个例子?

反向代理是MS ISA fwiw。

ISA Server能够查找和阻止各种HTTP攻击,并阻止它们进入Web服务器。 虽然大多数现代的HTTP服务器不再可以被利用,但它具有额外的好处,就是不会将这个stream量发送到Web服务器。

此外,ISA可以更轻松地完成诸如向各种URL添加SSL加速和用户预授权等事情。 它甚至可以作为一个负载平衡器,所以你可以轻松地添加更多的Web服务器,而无需使用单独的硬件负载平衡器。

一定要拿这个人在ISA上给予的亲,减less多less额外的开销,它会花费pipe理和运行ISA相比的好处。

Apache有mod_security,可以检测到常见的安全攻击。 还有mod_cband,它可以限制使用的带宽。 如果ISA有类似的东西,我不会感到惊讶。 没有什么东西在通过代理的时候对HTTPstream量进行实际的检查,从安全的angular度来看,这是没有意义的。

反向代理将给你什么是负载平衡,故障转移,caching,SSL和filering卸载,让你的networking服务器做他们擅长的:服务的HTML。

Web服务器前面的反向代理会提高安全性吗?

反向代理为您提供了一些可能使您的服务器更安全的事情。

  • 监视和logging与Web服务器分开的事情的地方
  • 如果您知道系统的某个区域容易受到攻击,则可以将filter或防火墙与您的Web服务器分开。 根据代理,您可以在应用程序级别进行筛选。
  • 另一个实现ACL和规则的地方,如果你的Web服务器不能有足够的performance力。
  • 一个单独的networking堆栈,不会像Web服务器那样容易受到攻击。 如果您的代理来自不同的供应商,则尤其如此。
    • 在Apache服务器前面使用Apache设置作为代理可能不像Apache之前的Squid那样有帮助。

一个没有过滤的反向代理并不能自动保护你所有的东西,但是如果你需要保护的系统是高价值的,那么添加一个反向代理可能是值得的成本支持和性能成本。

它可以保护您的应用程序服务器免受基于错误HTTP请求的攻击…特别是如果可能在反向代理(而不是在应用程序服务器上)configuration好请求的样子,而不允许错误的请求。 如果你必须告诉它什么坏请求是什么样的,那几乎肯定是无用的。 换句话说,它可以防止缓冲区溢出攻击,但不能防止SQL注入。

大多数情况下,这听起来像安全剧场。 你聘请了一名安全顾问,他们必须告诉你一些事情来提高你的安全。 攻击者不可能闯入反向代理,如果他们只是绕过它,他们总是可以责怪你; 所以这是一个安全的build议。

基本上,反向代理将隐藏您的基础设施从世界。 所以这主要是一个默默无闻的安全情况,除非你的Web服务器真的难以pipe理和不安全。

它也可以保护你的networking服务器免受某些DOS(分布式拒绝服务)的影响,特别是当你的网站是“沉重的”时,作为一个caching层。

它也有一些问题:它会隐藏你的应用程序的客户的真实IP。 它会让你消耗更多的服务器能力,并添加一层可以破解的东西。 请记住,您的反向代理将不得不处理更多的连接(通常是两倍:连接到客户和连接到您的Web服务器)。

在一天结束的时候,反向代理不会让你有一个安全的网站。

对于反向代理可以提供的好处,我认为Zoredache已经给出了非常好的答案。 我使用了反向代理,负载均衡器和HTTPS前端。

http://www.apsis.ch/pound/

我不认为其他人谈到的一个好处是,您不必通过外部防火墙打开任何外部IP /端口。 一个好的反向代理系统将启动从您的networking到DMZ中的服务器的通信,保护networking免受直接攻击。 然而,正如其他人所说,这不会保护你免受书写不好的申请。