Security 如何将mod_安全性用作独立的?

Security 如何将mod_安全性用作独立的?,security,proxy,load-balancing,mod-security,Security,Proxy,Load Balancing,Mod Security,我在Mod_Security包中看到了名为standalone的模块;但我不知道如何使用后,制作和安装它! 有什么好的启动资源吗?这似乎是不可能的;根据ModSecurity网站对其操作模式的描述: 反向代理是一种有效的HTTP路由器 站在web服务器及其客户端之间。当您安装 专用Apache反向代理并向其添加ModSecurity,您将获得 “适当的”网络web应用程序防火墙,可用于 保护同一网络上任意数量的web服务器。许多安全 从业者更喜欢有一个单独的安全层。有了它,你就可以 与您要保护的

我在Mod_Security包中看到了名为standalone的模块;但我不知道如何使用后,制作和安装它!
有什么好的启动资源吗?

这似乎是不可能的;根据ModSecurity网站对其操作模式的描述:

反向代理是一种有效的HTTP路由器 站在web服务器及其客户端之间。当您安装 专用Apache反向代理并向其添加ModSecurity,您将获得 “适当的”网络web应用程序防火墙,可用于 保护同一网络上任意数量的web服务器。许多安全 从业者更喜欢有一个单独的安全层。有了它,你就可以 与您要保护的系统完全隔离。上 性能方面,独立的ModSecurity将拥有资源 致力于此,这意味着您将能够做更多(即。, 有更复杂的规则)。这种方法的主要缺点是 新的故障点,需要通过 两个或多个反向代理的高可用性设置

他们正在考虑通过创建用于代理内部主机的专用主机将其分离

这是可行的;但从技术上讲,它不是独立的

我还提交了一个bug,Felipe Zimmerle证实了这一点:

Standalone是Apache内部的包装器,允许执行ModSecurity。那个包装器仍然需要Apache块。的确,您可以使用独立版本扩展您的应用程序,尽管您需要一些Apache部件


正如您所注意到的,ModSecurity是现有web服务器的一个附加组件—最初作为Apache模块(因此得名),但现在也可用于Nginx和IIS

您可以在嵌入式模式下运行它(即作为主web服务器的一部分),也可以在反向代理模式下运行它(基本相同,但您可以设置一个单独的web服务器并在该服务器上运行它,然后通过该服务器引导所有流量)

说实话,我从来没有发现反向代理方法有什么意义。我想这确实意味着您可以在不受支持的web服务器上使用它(即,如果您不使用Apache、Nginx或IIS),它将减少主web服务器上的负载,但除此之外,它似乎是一个额外的步骤和基础设施,没有真正的收益。有些人可能更喜欢在多个web服务器前进行ModSecurity检查,但我想说的是,如果您有多个web服务器,那么可能是出于性能和弹性的原因,所以为什么不将ModSecurity扩展到这一级别,而不是创建一个单点故障,这可能是它前面的瓶颈。唯一的另一个原因是应用会话级规则(例如,如果人们正在更改会话ID),这些规则最终可能会在不同的web服务器之间传播,但我从来没有确信这些规则有那么好

当我构建ModSecurity时,我会构建一个mod_security2.so库,但没有单独的独立文件,所以我想你只是通过查找源代码(我确实看到了一个独立文件)看到了这一点?我想说,仅仅因为源代码中有一个“独立”文件夹并不能保证它可以作为一个完全独立的、独立的部分运行

我想问你为什么要把它作为一个独立的应用程序运行,即使你可以?Web服务器有很多功能,依赖于ModSecurity,它是为Web安全而编写的,而不是Web安全Web服务器所做的所有其他事情(例如,快速、理解HTTP协议、gzip和ungzip…等),不必要地扩展了ModSecurity需要处理的内容。那么,为什么不使用web服务器来处理这个问题,让ModSecurity做它擅长的事情呢

如果你使用的是ModSecurity,那么我猜你有网络应用(大概是一个网络服务器),那么为什么不通过它来使用呢

最后,通过Apache(或Nginx或IIS)安装此软件是否有问题?这是一款支持良好且易于安装的免费软件


我想我最终还是不明白你问这个问题的原因。您想解决的是一个特定的问题,还是这仅仅是好奇?

这就是为什么我问您在哪里看到它可以在独立模式下运行的部分原因?只是通过检查来源吗?它的名字可能不太好,因为它的意思是“独立于Apache”,因为它最初是一个Apache模块。我只在“为NGINX安装->在NGINX上手动安装ModSecurity模块”一节中看到它,这对我来说是非常清楚的。在别处看不到任何关于它的参考。现在它确实说“独立库…是IIS版本、nginx版本和ModSecurity的无服务器命令行版本的公共基础”,所以不确定它是否可以构建为命令行版本,因为以前从未听说过。根据我最初的回答,你想要这个的原因是什么?我不想难为情,只是想帮助理解这个问题以及如何回答它。我真的不知道该告诉你什么,如果你觉得这个免费开放源码产品的作者在看他们的源代码时不诚实的话。就我个人而言,我觉得他们并没有把它作为一个独立的应用程序来推广,他们所有的安装说明都提到了Apache、Nginx或IIS。但是,它是完全开源的,您拥有源代码,因此如果您想创建一个真正独立的版本,那么您可以自由地这样做,Felipe在给您的回答中向您介绍了如何做到这一点的示例: