如果您不使用mod_security或TMG / UAG,为什么还要打扰反向代理应用程序?

通常的看法是,置身于可信networking(如Exchange)内部的内部应用程序,只要它们暴露于Internet,就应该是反向代理服务器。 Microsoftbuild议使用UAG / TMG,因为它具有一些内置的安全function。 mod_security在apache反向代理场景中有类似的作用。 但是,我发现使用反向代理的安装非常多,但是这个额外的安全层没有被使用。

为什么在这种情况下甚至打扰了反向代理? 如果你不使用一些L7逻辑来减轻攻击,那么添加代理层与直接暴露应用程序的好处是什么?

从防御攻击的angular度来看,不过滤数据当然不会增加任何有价值的东西。 有人可能会认为,没有预先考虑的代理事实上会降低安全性:

  • 引入更大的复杂性,往往是复仇。
  • 较less的透明度,因为多个日志和警报层需要每个事务的相关性。
  • 攻击面通过附加子系统增加。
  • 系统更多样化增加了人为错误的风险。
  • 每个系统都带有引入不确定性的错误,代理也不例外。

更不用说技术资源(机器,存储,备份/恢复等)的浪费了。

另一方面,可能会有其他方面与安全有关的胜利:

  • 负载平衡和故障转移的可能性。
  • 访问层与服务层分离更灵活(即更容易维护,重组等)。
  • 未来的select很容易引入过滤,而不是争夺服务层中的系统资源。
  • 分离除了简单的攻击签名过滤之外的其他function,例如重写逻辑或特定的日志logging,例如使configuration更容易并且更改期间更小的风险。
  • 某些function在代理平台上可能更好logging或已知,通过将它们从后端移出来给予更大的稳定性和控制权或减less未知数。

我相信还有更多,这只是从我的头顶。

曾经有一段时间,Apache的默认安装只比IIS的缺省安装有更less的已知安全漏洞; 这本身就是一个安全改进。

因此,它可能只是部落的传说,因为它曾经是最好的做法。