Apache por trás do proxy: bypass Auth Basic para algum ip

0

Eu preciso ignorar o auth básico para algum ip, o Apache é o 2.4 e está por trás do haproxy, eu o inseri na seção Document Root:

<Directory /path/to/webroot>
    AuthUserFile /etc/apache2/.htpasswd
    AuthType Basic
    AuthName "Restricted Content"
    <Limit GET>
        Require valid-user
    </Limit>
    Require ip xxx.xxx.xxx.xxx
    Satisfy any
</Directory>

Mas não funciona, o apache está por trás de um proxy, provavelmente não vai funcionar porque o ip que chega ao apache é o proxy e não o cliente

    
por hellb0y77 30.07.2015 / 14:22

1 resposta

1

Ative e configure o mod_remoteip . Você proxy configuraria o endereço IP remoto original no cabeçalho como X-Forwarded-For em solicitações HTTP. Passe para a diretiva RemoteIpHeader colocada fora de <Directory> .

Se o mod_remoteip funcionar corretamente, os endereços remotos originais passados pelo proxy poderão ser vistos com %a in LogFormat . Você deve primeiro verificar isso.

No Apache, a diretiva 2.4 Satisfy é obsoleta . E é melhor você não complicar as condições do authz adicionando <Limit> desnecessário.

Tente com a seguinte configuração:

RemoteIPHeader X-Forwarded-For

<Directory /path/to/webroot>
    AuthUserFile /etc/apache2/.htpasswd
    AuthType Basic
    AuthName "Restricted Content"
    Require valid-user
    Require ip xxx.xxx.xxx.xxx
</Directory>
    
por 30.07.2015 / 14:36