gpt4 book ai didi

linux - 如何设置仅对一个域/子域有效的 mod_security 规则?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:01 26 4
gpt4 key购买 nike

我正在构建没有代理的 mod_security 防火墙。的网站。我只想将特定规则应用于一个域,这些规则将不适用于其他域。

示例:

 SecGeoLookupDb /home/ec2-user/cndata/GeoIP.dat
SecRule REMOTE_ADDR "@geoLookup" "chain,id:20,drop,msg:'Block India IP address'"
SecRule GEO:COUNTRY_CODE "@streq IN"

以上规则我只想应用到一个子域/域而不是其他域。我怎样才能实现它?请帮忙

最佳答案

几种方式:

  1. 仅将上述规则添加到该子域的 vhost。
  2. 更改规则以检查主机名。

对于选项 2,新规则可能如下所示:

SecRule REMOTE_ADDR "@geoLookup" "chain,id:20,drop,msg:'Block India IP address'"
SecRule GEO:COUNTRY_CODE "@streq IN" "chain"
SecRule SERVER_NAME "subdomain.example.com"

请注意,SERVER_NAME 将由传入请求设置,因此没有什么可以阻止攻击者伪造它(或根本不发送它),尽管猜测如果它设置不正确,那么无论如何它都不会正确路由通过代理.

你也可以在这里使用正则表达式,例如在规则的最后部分添加多个服务器名称:

SecRule SERVER_NAME "/subdomain[1-9].example.com/"

或者

SecRule SERVER_NAME "/^(subdomain|subdomain2).example.com$/"

注意:第一次尝试时没有检查这些正则表达式是否有误,但希望无论如何都能给您提供思路。

关于linux - 如何设置仅对一个域/子域有效的 mod_security 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com