A regra "allow from" do Apache só funciona com endereços IP

1

Eu tenho uma configuração apache2 bem simples em um servidor pessoal - ou seja, muito pouca customização no arquivo de configuração, exceto para regras de permissão / negação, e apenas atualizei as versões do Ubuntu de 8.04 - 8.10 na máquina em questão. No entanto, apesar de manter os arquivos de configuração do apache durante a atualização, o apache agora me oferece "403 fobidden" se eu tentar acessar uma página da Web anteriormente acessível, a menos que eu use o host local. Se eu mudar

Allow from hostname.domain.local

para

Allow from 192.168.1.xxx

no arquivo de configuração do apache para o diretório que estou solicitando, posso acessar a página sem problemas.

Infelizmente, meu conjunto de habilidades do Apache não é muito avançado. Alguém pode oferecer alguma sugestão sobre por que isso pode estar acontecendo?

Veja algumas coisas que tentamos:

  • nslookup por hostname um endereço ip do computador afetado (recebo o resultados esperados)
  • php -r 'echo gethostbyaddr ("192.168.1.196"). "\ n";' Este comando respondeu com um nome de host
por jobu1324 27.06.2009 / 00:23

2 respostas

2
Ok, achei o problema: tem a ver com o daemon avahi: veja o bug 80900 Se eu desabilitar o daemon, o apache funciona bem. Pode haver um arquivo de configuração que eu possa editar também, mas por enquanto, desabilitar o daemon é tudo o que posso fazer. Vou atualizar essa pergunta se encontrar uma resposta melhor!

    
por 27.06.2009 / 01:24
1

O mod_access do Apache fornece a funcionalidade "Permitir de ...".

Para os requisitos "Permitir de", o mod_access serve:

  • uma pesquisa reversa de DNS (endereço IP para o nome do host) no IP do cliente
  • uma pesquisa de DNS de encaminhamento (nome do host da primeira pesquisa até o endereço IP)

Se as pesquisas reversa e direta tiverem êxito e forem consistentes (correspondência de nome de host / IP) e o nome do host na parte "Permitir de" for o mesmo (ou é um sufixo), você deve ter permissão.

Como sua instrução "Permitir de" funciona com o endereço IP, mas não com o nome do host, ela pode estar relacionada ao DNS.

Do seu servidor da Web, você deve conseguir:

  1. dig -x 192.168.1.xxx, fornecendo o resultado PTR de hostname.domain.local (ou um nome de host com isso como um sufixo)
  2. digite hostname.domain.local (ou o nome do host de 1.), fornecendo o endereço IP como em 1.

Identificar quais arquivos / servidores de nomes (/ etc / hosts e /etc/resolv.conf, /etc/nsswitch.conf?) seriam o primeiro lugar para iniciar a depuração se os resultados do DNS não forem os esperados.

    
por 27.06.2009 / 00:49