Назад | Перейти на главную страницу

Остановить пользователя от обхода блокировки IP?

Пользователь каким-то образом избегает IP-блокировки в apache 2.2 / 2.4, и я не могу понять, как это сделать. Компания, в которой я работаю, размещает сотни сайтов в разных центрах обработки данных; этот пользователь атакует несколько сайтов, которые мы размещаем.

В зависимости от центра обработки данных, пользователь входит со своим IP в remote_addr или X-Forwarded-For поля. Мы ведем два списка «плохих участников», которые находятся в файле, на основе их IP-адресов в полях remote_addr или X-Forwarded_For, и этот файл включается в apache.conf. Линии либо выглядят как SetEnvIf X-Forwarded-For 41\.216\.xxx\.xxx BlockedBot или SetEnvIf 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 этого плохого актера в оба файла, убедившись, что они оба включены, его запросы все равно проходят нормально. Чтобы дважды проверить, я использовал curl с IP-адресом плохого актера в поле X-Forwarded-For, и он правильно блокирует мой запрос:

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

Плохой субъект, отправляющий такой же точный запрос с его IP в поле XFF, получает код состояния 200, без проблем. Как это возможно?