Eri*_*ric 5 apache apache2 geoip
我试图了解发生了什么事。如果我使用以下命令将单个 IP 添加到我的黑名单中
Require not ip xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)
它正常工作,Apache 2.4 抛出 403。现在我尝试使用整个范围,它仍然让请求通过。我用了:
Require not ip xxx.xxx.xxx.1 xxx.xxx.xxx.255
Run Code Online (Sandbox Code Playgroud)
Apache 2.4 返回 200 而不是 403。我做错了什么?
谢谢
编辑:这是来自我的本地网络的一个简单的测试用例。
Require not ip 192.168.1.180/192.168.1.185
Run Code Online (Sandbox Code Playgroud)
使用ip 192.168.1.183的计算机,并且完全没有被阻止。
这是我的 httpd.conf,ips 位于单独的 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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
是否有办法让黑名单和 GEOIP一起工作?
好吧,这次真的发现了这个问题哈哈。顺便说一句,这是一个使用 Apache 2.4.10 的 WAMP 服务器,不确定是否相关。我阻止 IP 范围的唯一方法是通过以下方式阻止整个范围:
Require not ip 192.168.1
Run Code Online (Sandbox Code Playgroud)
它会阻止整个 192.168.1.0 到 192.168.1.255 块。如果我尝试过
Require not ip xxx.xxx.xxx.0/xxx.xxx.xxx.255
Run Code Online (Sandbox Code Playgroud)
事实上它永远不会起作用,并且会让访客通过。由于某些原因,在我的测试中,我认为它与 GEOIP 有关,但事实并非如此(不确定我做了什么)。
不幸的是,我从未找到仅阻止部分范围的解决方案,并且尝试了几乎所有方法。所以我可以忍受它,但这个谜团还没有完全解开......
归档时间: |
|
查看次数: |
13177 次 |
最近记录: |