【问题标题】:modsecurity whitelist ip rangemodsecurity白名单IP范围
【发布时间】:2014-01-16 07:59:54
【问题描述】:

我正在尝试将 Ubuntu 12.04 服务器上 modsecurity 上的一系列 ips (Googlebots) 列入白名单。例如,这是我需要列入白名单的范围:

66.249.64.0/19

我已经尝试了其他人建议的几种方法,但只有单个 ips 被阻止,当我尝试作为一个范围时,白名单被忽略。我已将规则添加到 /usr/share/modsecurity-crs/modsecurity_crs_10_config.conf 文件底部的新部分中。

这行得通:

SecRule REMOTE_ADDR "^66.249.65.3" 阶段:1,nolog,allow,ctl:ruleEngine=Off

这些不起作用:

SecRule REMOTE_ADDR "^66.249.64.0/19" 阶段:1,nolog,allow,ctl:ruleEngine=off

SecRule REMOTE_ADDR "@ipMatch 66.249.64.0/19" "phase:1,nolog,allow"

SecRule REMOTE_ADDR "^66.249.64\0/19$" 阶段:1,nolog,allow,ctl:ruleEngine=Off

我已经看到了几种不同的语法建议,但似乎都不适用于我的安装。mod-security 的版本重要吗?有什么建议吗?TIA

【问题讨论】:

  • 我正在使用从 apt-get 安装在 Ubuntu 12.04 LTS 上的 mod-security 2.2。我确实在 Modsecurity 的博客上找到了这个条目... > SecRule REMOTE_ADDR "^192\.168\.10\.69$" phase:1,log,allow:request 但它没有解释如何插入 IP 范围。有什么想法吗?

标签: ubuntu apache2 googlebot mod-security mod-security2


【解决方案1】:

我使用的是 Ubuntu,但结果可能相同

SecRule REMOTE_ADDR "@ipMatch 66.249.0.0/16" "id:26091975,phase:2,pass,nolog,allow,ctl:ruleEngine=Off"

它在我的服务器上运行良好。如果你想记录日志,只需去掉句子中的 nolog 命令。 您可以更改掩码以使其更精确,但这取决于您。

注意使用正确的相位。在我的情况下是第 2 阶段。

为了更加自信,请阅读: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#ipMatch

他们更喜欢@ipMatch 运算符而不是正则表达式。在 Twitter 上关注 @ModSecurity

【讨论】:

  • 这个可以工作,因为它有一个规则 ID,现在似乎是必需的。
【解决方案2】:

这适用于 mod_security >=2.8

SecRule REMOTE_ADDR "@ipMatch 192.168.1.100,192.168.1.50,10.10.50.0/24" phase:1,nolog,allow,ctl:ruleEngine=Off

【讨论】:

    【解决方案3】:

    这个应该可以;允许所有以66.249.64.开头的IP

    SecRule REMOTE_ADDR "^66\.249\.64" "phase:1,nolog,allow"
    

    【讨论】:

    • . 匹配任何字符,所以我认为这应该是\.
    【解决方案4】:

    如果您使用负载均衡器,请使用:

    SecRule REQUEST_HEADERS:X-Forwarded-For "@Contains 37.161.74.122" phase:1,nolog,allow,pass,ctl:ruleEngine=off,id:1
    

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 2013-10-20
      • 2018-01-22
      • 2018-01-10
      • 1970-01-01
      • 2013-05-11
      • 2020-11-14
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多