Apache 2.4不要求ip范围不工作(GEOIP活动时忽略黑名单)

Apache 2.4不要求ip范围不工作(GEOIP活动时忽略黑名单),apache,apache2,geoip,Apache,Apache2,Geoip,我想知道发生了什么事。如果我使用 Require not ip xxx.xxx.xxx.xxx 它只是工作,Apache2.4抛出了一个403。现在我尝试使用整个范围,但它仍然允许请求通过。我用过: Require not ip xxx.xxx.xxx.1 xxx.xxx.xxx.255 Apache2.4返回200而不是403。我做错了什么 谢谢 编辑: 这里有一个来自我的本地网络的简单测试用例 Require not ip 192.168.1.180/192.168.1.185 使用i

我想知道发生了什么事。如果我使用

Require not ip xxx.xxx.xxx.xxx
它只是工作,Apache2.4抛出了一个403。现在我尝试使用整个范围,但它仍然允许请求通过。我用过:

Require not ip xxx.xxx.xxx.1 xxx.xxx.xxx.255
Apache2.4返回200而不是403。我做错了什么

谢谢

编辑: 这里有一个来自我的本地网络的简单测试用例

Require not ip 192.168.1.180/192.168.1.185
使用ip 192.168.1.183上的计算机,完全没有被阻止

这是我的httpd.conf,IP位于单独的blacklist.txt中。它也适用于单个ip,该问题仅与ip的范围相关

    <Directory "f:/root">  
    Options Indexes FollowSymLinks  
    AllowOverride All   
    <LimitExcept GET POST HEAD>  
    </LimitExcept>
    <RequireAll>
      Require all granted
      Include conf/blacklist.txt
   </RequireAll>   
   </Directory>

选项索引跟随符号链接
允许超越所有
要求所有授权
包括conf/blacklist.txt
Edit2: 做了另一个测试,问题似乎来自使用黑名单+GEOIP。黑名单单独与xxx.xxx.xxx.0/xxx.xxx.xxx.255一起工作,但一旦mod_geoip激活,黑名单将被忽略

这是我的GEOIP配置:

<IfModule geoip_module>
    GeoIPEnable On
    GeoIPEnableUTF8 On
    GeoIPOutput Env
    GeoIPScanProxyHeaders On
    GeoIPDBFile bin/GeoIP.dat MemoryCache
    SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
</IfModule>

地理位置
GEOIPENABLUETF8开启
地理输出环境
GeoIPScanProxyHeaders打开
geoipdfile bin/GeoIP.dat MemoryCache
SetEnvIf地理区域国家代码CN区块国家

如果有办法让黑名单和GEOIP一起工作,你的IP范围格式是错误的。它应该如下所述

Require not ip xxx.xxx.xxx.1/xxx.xxx.xxx.255

好的,所以这次发现了问题,哈哈。这是一个带有Apache2.4.10的WAMP服务器,不确定是否相关阻止IP范围的唯一方法是通过以下方式阻止整个范围

Require not ip 192.168.1
这将阻止整个192.168.1.0到192.168.1.255块。如果我试过

Require not ip xxx.xxx.xxx.0/xxx.xxx.xxx.255
事实上,不会起作用,会让访客通过。在我的测试过程中,出于某种原因,我认为它与GEOIP有关,但事实并非如此(不确定我做了什么)


不幸的是,我从来没有找到一个只阻塞部分范围的解决方案,几乎什么都试过了。所以我可以接受它,但谜团还没有完全解开……

虽然我知道我的答案有点晚,但希望这能帮助其他人

我很确定使用Apache2.4实现IP范围的最简单方法是CIDR。你可以在谷歌上查找“CIDR生成器”来设置你的特定范围

我用了这个:

对于您最初的问题,我将尝试此方法,而不是阻塞整个内部范围

不需要ip 192.168.1.180/30 192.168.1.184/31


另外,由于IP是专门输入的,我非常确定GeoIP模块没有影响。

apache文档说:需要IP 192.168.1.104 192.168.1.205或网络/网络掩码对:需要IP 10.1.0.0/255.255.0.0-将尝试任何不工作的方式。仍然返回200而不是403,带有xxx.xxx.xxx.1/xxx.xxx.xxx.255您可以提及您要阻止的IP范围以及您在httpd.conf中放置的内容吗?这是可行的,但问题实际上来自黑名单+地理IP,后期编辑