Apache, use o X-Forwarded-For para permitir

13

Como usar os cabeçalhos X-Forwarded-For (meu proxy ip 10.1.1.x) para permitir a consulta HTTP?

bindbn
fonte

Respostas:

23

Você pode usar SetEnvIf e 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
fonte
1
Lembre-se de que é realmente fácil forjar o cabeçalho X-Forwarded-For.
Olli
Também é razoavelmente fácil se proteger de cabeçalhos X-Forwarded-For forjados (removendo esse cabeçalho nos pontos de entrada do seu ambiente).
Larsks
1
encontrou esta postagem enquanto procurava informações sobre como se proteger contra cabeçalhos encaminhados por x forjados, você se importaria em apontar para um documento relevante?
Pete
2

Você pode usar o mod_rpaf para fazer o Apache tratar o IP X-Forwarded-For como o IP do cliente.

ThatGraemeGuy
fonte
7
Para quem encontra o caminho aqui do Google: observe que mod_rpafsó é possível tornar seus registros úteis; na verdade, não afeta o endereço usado nas decisões de controle de acesso. Observe também que no Apache 2.4, a mod_rpaffuncionalidade é fornecida nativamente pelo mod_remoteip .
Larsks
1
@ Larsks: Isso não é verdade. Eu tentei e funcionou para mim!
Confiq
2

Você pode escrever uma regra de reescrita para redirecionar para a resposta 403.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
Vicky Sridhar
fonte