阻止用户绕过 IP 封锁?

阻止用户绕过 IP 封锁?

一个用户以某种方式避开了 apache 2.2/2.4 中的 IP 阻止,我不知道是怎么回事。我所在的公司在不同的数据中心托管了数百个站点;这个用户正在攻击我们托管的几个站点。

remote_addr根据数据中心的不同,用户在或字段中输入其 IP X-Forwarded-For。我们维护两个“不良行为者”列表,这些列表基于 remote_addr 或 X-Forwarded_For 字段中的 IP 地址,位于一个文件中,该文件包含在 中apache.conf。这些行看起来像 SetEnvIf X-Forwarded-For 41\.216\.xxx\.xxx BlockedBotSetEnvIf Remote_Addr 41\.216\.xxx\.xxx BlockedBot。然后我们在 apache.conf 的底部附近有以下内容:

<Location />
    <IfVersion < 2.4>
        AuthType none
        Require valid-user
        Satisfy any
        Order Deny,Allow
        Deny from env=BlockedBot
        Deny from env=EmptyHost
    </IfVersion>
    <IfVersion >= 2.4>
        <RequireAll>
            Require all granted
            Require not env BlockedBot
            Require not env EmptyHost
        </RequireAll>
    </IfVersion>
</Location>


我的问题是,在将这个恶意行为者的 IP 放入两个文件中并确保它们都包含在内后,他的请求仍然能够顺利通过。为了再次检查,我在 X-Forwarded-For 字段中使用了恶意行为者的 IP 的 curl,它正确地阻止了我的请求:

curl --header "X-Forwarded-For: 41.216.xxx.xxx" www.testexample.com/images/fpo/check-14aca5cd1a.png

恶意攻击者在 XFF 字段中发出完全相同的请求,并使用其 IP,成功通过了 200 状态代码,没有任何问题。这怎么可能呢?

相关内容