Não consigo negar acesso ao sistema de arquivos do servidor com um DocumentRoot customizado no Apache?

1

CentOS 7.1 - Apache 2.4.6

A configuração padrão contém o seguinte:

....
<Directory />
    AllowOverride none
    Require all denied
</Directory>
...
DocumentRoot "/var/www/html"

Se eu alterar o DocumentRoot, obtenho:

403 - You don't have permission to access / on this server.

Após horas de verificação quádrupla Configuração do diretório e permissões do sistema de arquivos, tentei remover o bloco acima ... SUCESSO! Tudo funciona.

  • Isso deveria acontecer?
  • Estou fazendo algo errado?
  • Quais são as implicações de segurança?

A totalidade das minhas alterações está substituindo a seção padrão por:

DocumentRoot "/srv/http"
<Directory "/srv/http">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
    
por beanaroo 08.11.2015 / 13:09

2 respostas

1

O Apache 2.2 usa a seguinte configuração para declarar o acesso a certos diretórios:

Order deny,allow
Deny from all

O Apache 2.4 usa o seguinte:

Require all denied

Mais informações aqui . É estranho que você consiga trabalhar com o primeiro estilo de configuração, porque isso funciona apenas no apache 2.2. Tente executar isso:

httpd -v

Ele mostrará a versão do apache que você está usando e talvez ajudará a esclarecer algumas coisas em sua mente.

    
por 08.11.2015 / 13:44
0

Parece que na configuração Directory do caminho DocumentRoot , o acesso precisa ser especificado da seguinte forma para substituir a negação de nível superior:

Require all granted

Acho que tenho muito mais coisas para ler ... de acordo com o Apache Docs :

The Allow Deny, and Order directives, provided by mod_access_compat, are deprecated and will go away in a future version. You should avoid using them, and avoid outdated tutorials recommending their use.

    
por 08.11.2015 / 13:51