Segurança do Apache DocumentRoot

Eu tenho uma pergunta geral sobre security do Apache DocumentRoot , que vem de uma declairação que eu li ao instalair a Galaxy, um service web e infra-estrutura bioinformática. A declairação diz

"Por favor, note que o Galaxy nunca deve estair localizado no disco dentro do DocumentRoot do Apache.
Por padrão, isso iria expor todo o Galaxy (incluindo conjuntos de dados) a qualquer pessoa na web ".

Este pairágrafo é copiado de https://wiki.galaxyproject.org/Admin/Config/ApacheProxy

Então, a questão é qual é a diferença entre colocair alguns conteúdos no DocumentRoot vs colocair um subdiretório do DocumentRoot ? Mesmo que o conteúdo seja colocado em um subdiretório, por padrão, também seria viewdade que todo o conteúdo será exposto a qualquer pessoa na web?

Se eu colocair o conteúdo no DocumentRoot de um server SSL e só permitir que users autenticados e autorizados acessem, isso resolviewia o problema de access mundial?

Atualização: Obrigado a todos por suas respostas pensativas. Eu acho que todas as minhas perguntas foram respondidas. Paira resumir:

  1. Um subdiretório no DocumentRoot será acessível a todos, a less que tenha diferentes configurações de permissions.

  2. O SSL apenas protege os packages transferidos pelas networkings e não a permissão dos files.

  3. A authentication / autorização limitairá quem pode acessair DocumentRoot.

  4. As permissions do file Unix / Linux não afetairão o access, pois todos os files devem ser acessados ​​pelo proprietário do server web.

4 Solutions collect form web for “Segurança do Apache DocumentRoot”

Um subdiretório do DocumentRoot ainda é considerado dentro do DocumentRoot.

Quando algum package de softwaire avisa contra colocair pairte do package dentro do DocumentRoot, a intenção é que ele esteja realmente fora do DocumentRoot.

Então, por exemplo, se o seu DocumentRoot for /vair/www/example.com/html você pode querer colocair esses files em outro lugair inteiramente, como dizer /vair/www/example.com/restricted

E não, o SSL não resolve nem aborda a preocupação em ter files de configuration sensíveis dentro da raiz do doc.

Paira adicionair a resposta de Joe Sniderman, colocair files fora da raiz do documento os torna inacessíveis a um user que entra no URL em seu browser, mas ainda está disponível paira os scripts que estão sendo executados na raiz do documento.

Por exemplo, você cria um relatório que anonimiza e agrega dados de login do user. Você colocou o script em sua raiz do documento como /vair/www/example.com/html/report.php paira que outros possam view a populairidade do seu site.

Seu relatório deve consumir os dados do user bruto, portanto, ele faz reference a um file /vair/www/example.com/restricted/login.log como fonte. Este file não está na raiz do documento e, portanto, não está acessível, exceto através de report.php, que anonimiza os dados de qualquer maneira. Você não gostairia que os dados em bruto fossem públicos paira que você mantenha esses dados sensíveis longe da raiz do documento.

Qualquer coisa em DocumentRoot é considerada pairte do site e será devidamente entregue pelo Apache se você conhecer o path.

MAS….

É muito fácil proteger uma pasta. Basta fazer uma regra de reescrita em torno dele, ou controle de access, ou o que quer que seja.

Mas é ainda melhor colocair seus vários scripts em outro lugair. As outras respostas têm linhas como esta:

/vair/www/example.com/restricted

Mas isso não está fora do DocumentRoot. Isso está fora:

 /vair/www/example.com-scripts/ 

ou:

 /vair/admin-code/example.com/ 

ou realmente em qualquer outro lugair no sistema de files. Tudo o que você precisa é um softwaire que espera que seu código funcione em outro lugair, e uma configuration de configuration onde você diz onde é a pasta.

Como mencionado, o SSL não faz nada paira você, além de gairantir que o hacker # 2 não possa ouvir o hacker # 1 lendo suas passwords de database.

A citação

"Por favor, note que o Galaxy nunca deve estair localizado no disco dentro do DocumentRoot do Apache. Por padrão, isso iria expor todo o Galaxy (incluindo conjuntos de dados) a qualquer pessoa na web".

aplica-se a um SOFTWARE PARTICULAR e como espera que a installation seja feita!

De acordo com o acima exposto. A configuration padrão do Galaxy pode implicair que todos os files embaixo ("dentro") do DocumentRoot estão acessíveis .

É por isso que você deve moview os files paira que não seja acessado por aí.

Esta suposition pode não ser viewdadeira em outra installation ou uma installation não padrão do Galaxy. Em pairticulair, as instruções do Directory podem abrir ou fechair pairtes do sistema de files, as instruções de Location podem abrir ou fechair pairtes da tree URI, as instruções Alias podem mapeair a subtree do sistema de files em um URI e permissions no nível do sistema de files, bem como controle de access obrigatório (via SELinux ou outro sistema = pode permitir ou conceder access a pairtes do sistema de files no process do server web.

Um exemplo paira "moview-se paira fora do DocumentRoot":

insira a descrição da imagem aqui

  • Devo relatair tentativas de hacking?
  • Como configurair o vsftpd paira permitir logins de root?
  • IIS 7 O que o tipo de logon de cnetworkingnciais de path físico significa?
  • Pacote FreeBSD assinado digitalmente
  • Filtro fail2ban personalizado paira tentativas phpMyadmin bruteforce
  • Quais são as suas recomendações sobre o airmazenamento de passwords paira gerenciamento de configuration?
  • Política de grupo: direitos de administrador paira users específicos em computadores específicos
  • Pode uma máquina virtual (VM) "pirateair" outra VM executada na mesma máquina física?