Como configurar o Apache para permitir somente o acesso de endereços IP locais?

0

Eu tenho um servidor Apache servindo alguns domínios (hosts virtuais). Dentro de um deles, quero que um diretório virtual seja acessível somente a partir da rede local:

<VirtualHost *:80>  
  DocumentRoot "some_dir"  
  ServerName www.something.com  

  Alias /restricted "someotherdir_somewherelse"  
  <Location /restricted>  
    Order deny,allow  
    Deny from all  
    Allow from 192.168.1.*  
  </Location>  

</VirtualHost>

O problema é que ninguém pode acessar o diretório. É sempre rejeitado.

Se eu remover a diretiva Deny , os computadores locais poderão acessar o local restrito , mas também os externos. Estou um pouco confuso com a documentação do Apache sobre a diretiva Order :

Deny,Allow

First, all Deny directives are evaluated; if any match, the request is denied unless it also matches an Allow directive. Any requests which do not match any Allow or Deny directives are permitted.

Parece que, quando a diretiva Deny é avaliada, Allow não é. Estou testando a partir de 192.168.1.60 e 192.168.1.23.

O Apache é o 2.2 em execução no Windows 2008 Foundation.

    
por alvaroc 12.08.2015 / 19:09

1 resposta

3

Você está assumindo que allow from permite um asterisco como um caractere curinga, mas não é assim que as coisas são documentado . Em vez disso, use um endereço parcial:

Allow from 192.168.1
    
por 12.08.2015 / 19:56