Como bloquear o endereço IP no Apache quando ele vem do proxy

1

Eu tenho o URL necessário para restringir o acesso a um IP específico (10.0.0.5). Quando eu faço isso para acesso direto da próxima vez que funciona perfeito:

<Location /incoming>
    Order Allow,Deny
    Deny from 10.0.0.5
    Allow from all
</Location>

Mas, quando esse IP vem do Proxy (Proxy IP: 192.168.1.43), esta solução não funciona. Isso é o que eu vejo no log:

10.0.0.5, 192.168.1.43 - - [24/May/2017:16:03:54 +0300] "POST /incoming HTTP/1.0" 200 698 0/6899 "-" "-"

Eu tentei fazer a próxima seção - adicionar o proxy:

<Proxy /incoming >
    Order Allow,Deny
    Deny from 10.0.0.5
    Allow from all
</Proxy>

Não ajuda também.

Eu preciso da sua ajuda, amigos !!!

    
por Uri Gorobets 24.05.2017 / 15:35

1 resposta

0

Se o proxy definir o cabeçalho X-Forwarded-For, você poderá usar isto:

<Location /incoming>
    Order Deny,Allow
    SetEnvIf X-Forwarded-For "10.0.0.5" DenyAccess
    Deny from env=DenyAccess
</Location>

Order Deny,Allow é uma diretiva allow-by-default, que dá acesso a menos que uma regra de negação seja correspondente. SetEnvIf condicionalmente define um sinalizador de ambiente com base no valor do X-Forwarded-For. A única regra de negação aqui é acionada apenas se esse sinalizador estiver definido. Se nenhuma regra de negação for acionada, o acesso será permitido.

Você também pode fazer referência a env flags em Require blocks, conforme ilustrado aqui .

    
por 25.05.2017 / 02:24