Apache, используйте X-Forwarded-For для разрешения


13

Как можно использовать заголовки X-Forwarded-For (мой прокси ip 10.1.1.x), чтобы разрешить HTTP-запрос?

Ответы:


23

Вы можете использовать SetEnvIf и Allow:

    <Location "/only_proxy/">
            SetEnvIf X-Forwarded-For ^10\.1\.1\. proxy_env
            Order allow,deny
            Satisfy Any
            Allow from env=proxy_env
    </Location>

1
Помните, что действительно легко подделать заголовок X-Forwarded-For.
Олли

Также достаточно легко защитить себя от поддельных заголовков X-Forwarded-For (удаляя этот заголовок в точках входа в вашу среду).
Жаворонки

1
нашел этот пост, когда искал информацию о том, как защитить от поддельных заголовков x-forwarded, не могли бы вы указать на соответствующий документ?
Пит

2

Вы можете использовать mod_rpaf, чтобы Apache рассматривал IP-адрес X-Forwarded-For как IP-адрес клиента.


7
Для тех, кто находит свой путь здесь от Google: обратите внимание, что mod_rpafэто может только сделать ваши журналы полезными; это фактически не влияет на адрес, используемый в решениях контроля доступа. Также обратите внимание, что в Apache 2.4, mod_rpafфункциональность обеспечивается изначально mod_remoteip .
Жаворонки

1
@larsks: Это не правда. Я пытался, и это сработало для меня!
Confiq

2

Вы можете написать правило перезаписи, чтобы перенаправить на 403 ответ.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.