Eu tenho o seguinte no meu arquivo de configuração do apache:
Define THUMBS_ROOT "//mysmbserver/website/thumbs"
Alias "/thumbs" "//mysmbserver/website/thumbs"
<Directory {THUMBS_ROOT}>
Options Indexes FollowSymLinks
<RequireAny>
Require ip 66.54.56.34
Require ip 159.101.84.4
</RequireAny>
</Directory>
LoadModule authz_core_module modules/mod_authz_core.so
Minha versão do apache é Apache/2.4.29 (Win64). (Sim, eu percebo que esta é uma versão antiga do Apache - não posso atualizar devido a ser um dispositivo de dispositivo)
Mesmo aqueles que eu adicionei RequireAny e RequireIP apache estão ignorando isso e permitindo que qualquer IP acesse o diretório thumbs. Não consigo descobrir por quê. Alguém pode me ajudar a entender?
Para complicar ainda mais, tenho um dispositivo balanceador de carga na frente do apache, então realmente o que preciso ver é o X-Forwarded-For não o IP de origem. Não tenho certeza se preciso fazer alguma coisa para que o RequireIP detecte o X-Forwarded-For?
De qualquer forma, está permitindo acesso independentemente do IP.
Edit: eu também tentei:
LoadModule authz_core_module modules/mod_authz_core.so
Define THUMBS_ROOT "//mysmbserver/website/thumbs"
Alias "/thumbs" "//mysmbserver/website/thumbs"
SetEnvIF X-Forwarded-For "66.54.56.34" AllowIP1
SetEnvIF X-Forwarded-For "159.101.84.4" AllowIP2
<Directory {THUMBS_ROOT}>
Options Indexes FollowSymLinks
<RequireAny>
Require env AllowIP1
Require env AllowIP2
</RequireAny>
</Directory>
Isso também não funciona.
De acordo com a documentação , o caminho em uma
<Directory>
diretiva deve ser um caminho do sistema de arquivos, não um alias ou variável. Então, acho que sua diretiva não está tendo nenhum efeito, pois não há caminho{THUMBS_ROOT}
no sistema de arquivos.Opções possíveis:
<Directory //mysmbserver/website/thumbs>
. Não sei se isso funcionará, mas poderá se o Windows o tratar como um caminho válido do sistema de arquivos.<Location /thumbs>