Não é possível permitir / negar acesso a IPs

4

Eu tenho um servidor de trabalho feliz no Ubuntu 14.04. Estou tentando restringir o acesso a um arquivo usando um bloco de permissão / negação:

<Files "login.php">
order deny,allow
deny from all
allow from 22.123.123.12
</Files>

Isso nega com êxito todos os usuários e informa "Proibido. Você não tem permissão para acessar ...". Se eu remover a linha "deny from all", isso permitirá que eu veja a tela de login.

Mas não importa o que eu faça e depure, não consigo visualizá-lo, quando estou usando esse endereço IP. A declaração 'allow' nunca parece funcionar.

Alguma depuração já tentou:

  • Eu tentei adicionar um AllowOverride All em minha configuração de host para ter certeza de que o módulo de arquivo / autorização estava funcionando.
  • Eu tentei um monte de outras declarações de permissão / negação
  • Esta declaração está atualmente em um arquivo .htaccess, mas tentei movê-lo para a configuração do host, o que também não funciona.

Outras informações possivelmente relevantes:

  • Eu usei um pouco de PHP para gerar meu IP em uma página da Web: ele é reconhecido com sucesso como 22.123.123.12.
  • Estou usando SSL para a página da Web, por isso estou acessando o arquivo no link . Não tenho certeza se isso afetaria as coisas.

Estou começando a suspeitar que, por algum motivo, o servidor não acha que estou nesse endereço IP, mas não consigo descobrir como isso seria o caso. Alguma idéia?

    
por Jon Lay 19.04.2015 / 08:54

1 resposta

7

Graças ao comentário do @ ChrisLam, percebi que o endereço IP mostrado nos registros de acesso não era o mesmo do meu IP atual.

Esse IP, 108.162.225.167, parecia ser compatível com os servidores do CloudFlare.com, que estamos usando para acelerar o site.

Embora houvesse uma regra definida para não armazenar em cache esta página, os endereços IP das solicitações ainda não estavam sendo repassados para o servidor. CloudFlare diz que:

"Because CloudFlare acts as a proxy, you will notice changes to the way that your website visitors' IP addresses are displayed both in your server logs and web applications - notably that all access appears to be coming from CloudFlare IP addresses."

A instalação do módulo mod_cloudflare do CloudFlare para o Apache httpd permite que esses endereços IP sejam passados de volta para o servidor e corrigiram meu problema perfeitamente.

Download e informações disponíveis no site da CloudFlare: link

    
por 19.04.2015 / 09:21