使用SetEnvIfExpr的Apache Allow Ip范围

时间:2019-02-26 20:00:19

标签: apache

我要管理以下任务: 在我的apache服务器(充当代理服务器)中,我只需要允许访问某些子网。由于它位于WAF(封装)的后面,因此我尝试从 X-Forwarded-For 中提取要接受的IP,并与此

匹配
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip

实际上是这样的

gradle-4.10.1

但是在这种情况下,IP的数量太大而无法管理

您有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我用以下方法解决: 我添加了这些指令以获取X-Forwarded-For收集的第二个($ 2)IP,然后将ipmatch匹配到需要检查的子网掩码:

    SetEnvIf X-Forwarded-For "^(.*,\s*)(.*)(,\s*.*)$" ip_to_catch=$2
  SetEnvIFExpr "env('ip_to_catch') -ipmatch '66.91.255.128/27'" AllowIP

最后我在授予对我的资源的访问权限之前添加了此命令以检查AllowIP值:

<RequireAll>
      Require env AllowIP
  </RequireAll>