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

时间:2014-08-13 00:21:38

标签: apache apache2 geoip

我试图了解发生了什么。如果我使用

将一个IP添加到我的黑名单中
Require not ip xxx.xxx.xxx.xxx

它正常工作,Apache 2.4抛出403.现在我已经尝试使用整个范围,它仍然让请求通过。我用过:

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

Apache 2.4返回200而不是403.我做错了什么?

由于

修改: 这是我本地网络的一个简单测试用例。

Require not ip 192.168.1.180/192.168.1.185

在ip 192.168.1.183上使用过的计算机,并没有被阻止。

这是我的httpd.conf和ips分开的blacklist.txt。它也适用于单个IP,该问题仅与IP的 RANGE 有关。

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

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>

如果有办法让 BOTH黑名单和GEOIP 一起工作?

3 个答案:

答案 0 :(得分:3)

您的IP范围格式错误。它应该如下所述。

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

答案 1 :(得分:2)

好的,所以这次发现了真正的问题哈哈。这是一个使用Apache 2.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有关,但它不是(不确定我做了什么)。

我从来没有找到一个解决方案,只是不幸地阻止了部分范围,并尝试了几乎所有的东西。所以我可以忍受它,但神秘面纱并没有完全解决......

答案 2 :(得分:2)

虽然我知道我的回答有点晚,但希望这有助于其他人。

我非常确定使用Apache 2.4进行IP范围的最简单方法是CIDR。你可以查找&#34; CIDR发生器&#34;在Google上设置您的特定范围。

我用过这个: http://www.ipaddressguide.com/cidr

对于您的原始问题,我会尝试这样做,而不是阻止整个内部范围。

不要求ip 192.168.1.180/30 192.168.1.184/31

此外,由于专门输入了IP,我非常确定GeoIP模块没有任何影响。