Apache 2 sem autenticação de ips

2

Eu tenho uma implantação com o servidor apache 2.2.22 atrás do verniz.

O que eu gostaria de realizar é que a senha proteja um diretório com o htpasswd, mas torne isso acessível para certos usuários vindos de ips sem autenticação.

AuthType Basic
AuthName "test"
AuthUserFile /www/.htpasswd
Require valid-user
order deny,allow 
deny from all 

SetEnvIF X-Forwarded-For "1.2.3.4" AllowIP
Allow from env=AllowIP 
Satisfy any 

O que eu faço agora é isso, é uma solução, mas está funcionando. Se o X-Forwarded-For IP (o cliente) for 1.2.3.4, deixe-o assistir a página sem autenticação.

O problema com isso é que é inseguro, o cliente pode simplesmente configurar um cabeçalho X-Forwareded-For e ignorar a autenticação.

Eu tentei o módulo Apache RPAF:

<IfModule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 varniship
</IfModule>

O que teoricamente deveria restringir as requisições X-Forwarded-For vindas do proxy, eu nem tenho certeza se eu preciso deste módulo neste caso, já que o proxy sempre colocará o ip do cliente X-Forwarded-For por trás dele. Então o req se pareceria com:

X-Forwarded-For: <varniship>, clientip

Onde o clientip pode ser manipulado pelo cliente mais uma vez. Existe uma maneira melhor de fazer isso?

    
por defiler 02.02.2016 / 11:00

2 respostas

0

    <Directory "/var/www/html/docroot">
    AuthName "Restricted Access"
    AuthType Basic
    AuthUserFile /usr/local/.htpasswd
    Order allow,deny
    Allow from x.x.x.x
    Require  valid-user
    Options Indexes FollowSymLinks
    satisfy any
    </Directory>

Isso funciona como um encanto para mim, embora eu esteja no 2.4.10 e não tenha um mais antigo para testar.

    
por 02.02.2016 / 13:20
0

Alternativamente, você pode fazer isso também no lado do verniz vcl:

    sub vcl_recv {
        # whitelist ip 10.10.10.10
        if (req.http.X-Forwarded-For ~ "^10\.10\.10\.10") {
           # where dXNlcjpwYXNzd29yZA== is user:password in base64
           set req.http.Authorization = "Basic dXNlcjpwYXNzd29yZA==";
        }
    }

Pode ser estendido com outras verificações vindas do cabeçalho da solicitação.

    
por 18.02.2016 / 12:48