【问题标题】:HAproxy with standalone mod_security routed to multiple web servers具有独立 mod_security 的 HAproxy 路由到多个 Web 服务器
【发布时间】:2019-01-23 11:58:32
【问题描述】:

我想拥有一台安装了 HAproxy 的服务器和一个独立的 mod_security,它首先将每个数据包路由到 mod_security 并根据其规则进行检查。

然后,如果数据包中没有任何可疑内容(SQL 注入、DOS 攻击等),则将它们从 mod_security 传递回 haproxy,然后 haproxy 将它们路由到具有不同网络服务器的多个服务器。

因此我不需要在我的所有网络服务器上安装和配置 mod_security。

【问题讨论】:

    标签: apache security nginx haproxy mod-security


    【解决方案1】:

    这在技术上是可行的,可能需要运行 2 个 HAProxy 实例。但是,您需要一个在 ModSec 下运行的网络服务器,通常是 Apache 或 nginx,这抵消了不必在所有网络服务器上安装 ModSec 的优势。

    标准设置是:haproxy -> 使用 ModSec 的反向代理 -> 应用程序服务器

    【讨论】:

    • 独立运行的新版 modsecurity 怎么样?
    • 虽然有趣的是你是如何用两个 haproxys 解决问题的
    • 当然,单机会很有趣。
    【解决方案2】:

    只是为了回答这个古老但仍然有效的问题:

    解决方案应该是通过流处理卸载协议 (SPOP) 使用 HAProxies 流处理卸载引擎 (SPOE) 来与作为独立 modsecurity 守护进程的流处理卸载代理 (SPOA) 通信。

    来自github repo 的 HAProxy 示例配置

       frontend my-front
          ...
          filter spoe engine modsecurity config spoe-modsecurity.conf
          ...
        enter code here
    
       backend spoe-modsecurity
          mode tcp
          balance roundrobin
          timeout connect 5s
          timeout server  3m
          server modsec1 127.0.0.1:12345
    
       # Block potential malicious requests with returncode < 0
       http-request deny if { var(txn.modsec.code) -m int gt 0 }
    

    还有一个Github project,其中守护程序已作为 Docker 容器提供

    Offical HAProxy blog post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 2016-12-06
      • 2021-08-16
      • 2013-03-18
      相关资源
      最近更新 更多