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

13

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

bindbn
источник

Ответы:

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>
ooshro
источник
1
Помните, что действительно легко подделать заголовок X-Forwarded-For.
Олли
Также достаточно легко защитить себя от поддельных заголовков X-Forwarded-For (удаляя этот заголовок в точках входа в вашу среду).
Жаворонки
1
нашел этот пост, когда искал информацию о том, как защитить от поддельных заголовков x-forwarded, не могли бы вы указать на соответствующий документ?
Пит
2

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

ThatGraemeGuy
источник
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]
Вики Шридхар
источник