使用mod_security,使用Apache 2.4或使用mod_proxy作为反向代理

时间:2015-08-14 03:39:43

标签: apache mod-security2

我想将mod_security设置为保护Tomcat实例免受Web应用程序攻击的独立实例。有人知道通过将mod_security作为Apache模块安装而不是在反向代理上安装mod_security来实现这一点的优缺点吗?有没有人用这两种方式实现mod_security?如果是这样的话比另一个更受欢迎?

2 个答案:

答案 0 :(得分:0)

你的两个选择真的没什么区别。你会安装什么非反向代理来保护Tomcat?

答案 1 :(得分:0)

这个问题并不合理,因为它们对你们都是一样的。

如果您已有Apache服务器,则可以通过以下两种方式之一安装ModSecurity:

  1. 在嵌入模式下,将ModSecurity作为模块安装在您已有的现有Apache实例中。优点是您不必设置单独的Apache实例,并且ModSecurity可以访问Apache运行的环境(例如,可以查看环境变量或登录到相同的日志文件)。 / p>

  2. 在反向代理模式下。这涉及设置一个单独的Apache实例,仅在其上使用ModSecurity,并在将请求发送到普通Apache之前通过它汇集所有请求。这里的优点是专门用于ModSecurity的Web服务器,因此如果资源已经耗尽,您将不会与现有版本的Apache共享资源。缺点是它会使您的基础设施加倍,并带来复杂性。

  3. 我个人更喜欢选项1。

    但是,由于您要在TomCat前面设置专用Web服务器,因此这两个选项完全相同。您设置的Apache(或Nginx)的新实例将以嵌入模式运行它,并将充当Tomcat服务器的反向代理。

    就我个人而言,我一直认为最好在像Tomcat这样的任何应用服务器之前运行像Apache这样的专用Web服务器 - 特别是在面向公众的网站上。授权Tomcat确实包含了一个非常好的Web服务器(称为Coyote),它可以满足您的大多数Web服务器需求,但像Apache这样的专用Web服务器更适合于提供静态内容,并包含其他性能和安全性功能,这使得它成为更好的端点服务器(例如,包括运行ModSecurity的能力!)。

    为了防止出现任何混淆,Apache实际上是Apache HTTP Server的缩写,有时在运行它的过程后称为Apache httpd。它是Apache最受欢迎的软件,因此缩短名称的原因,但Apache实际上有很多软件(包括Apache Tomcat - 通常只缩短到Tomcat)。