Quão visível é meu / var / www para o mundo exterior?

8

Suponho que isso seja mais uma questão de manutenção da casa, mas aqui vai.

Se eu criar um arquivo de backup do meu index.htmlchamado index.html.bak, é possível que alguém de fora, usando httpno meu servidor apache2, consiga listar o conteúdo do meu /var/wwwdiretório? Atualmente, não conheço nenhum método para fazer isso, mas isso pode ser devido à minha falta de experiência nessa área. Devo armazenar arquivos que não precisam ser visualizados em outro lugar?

Atualmente, a única maneira viável de pensar que alguém pode descobrir o arquivo é se houver um link explícito em algum lugar apontando para o arquivo. Qual é a visibilidade do meu diretório da web?

Chad Harrison
fonte

Respostas:

11

Para responder diretamente às suas perguntas - você pode manter esses arquivos em outro lugar ou configurar o apache para negar acesso a eles - negar o acesso ao * .bak é relativamente simples.

O Apache, a menos que esteja configurado para não fazer isso (conforme mencionado pelo MH acima), gerará e exibirá uma lista de diretórios para qualquer diretório que não contenha um arquivo de índice - definido pela diretiva DirectoryIndex, mas geralmente index.html, index.htm, index.php e similares.

Em uma nota mais geral:

Você pode considerar o uso de um sistema de controle de revisão como SVN ou git (ou até RCS) para manter versões antigas E um histórico de alterações de suas páginas da web (incluindo a capacidade de ver o que mudou e quando e, mais importante, a capacidade de reverter para uma versão anterior)

Tanto o git quanto o svn precisam de um repositório configurado em outro lugar. O RCS é bastante primitivo e básico, mas não requer nenhuma configuração, mantém o histórico de revisões no mesmo diretório ou em um subdiretório ./RCS, se houver. Um pequeno incômodo com o RCS é que, quando você faz o check-in de um arquivo, ele altera as permissões para somente leitura, então você deve fazer o check-out novamente antes de poder editá-lo novamente (ou use-o ci -lpara fazer check-in de um arquivo e verificar imediatamente fora).

O git da IMO provavelmente é um exagero para este trabalho, o SVN está próximo do ideal em termos de complexidade versus capacidade para gerenciar o histórico de revisões de um conjunto de páginas HTML editadas à mão, e o RCS é arcaico, mas ainda útil. Com o RCS, você só pode editar arquivos diretamente em / var / www, o que significa que as alterações estão "ativas" assim que você salvar o arquivo. Com o svn ou git, você pode fazer o check-out de uma cópia local, por exemplo, em seu diretório pessoal na sua área de trabalho, editar os arquivos, fazer o check-in das alterações e, em seguida, fazer o check-out das atualizações em / var / www no servidor, quando necessário. acabado. Você também pode fazer check-out das alterações em um servidor intermediário para teste, antes de fazer check-out no servidor de produção.

Você pode negar o acesso aos subdiretórios .svn /, .git /, RCS / etc com o apache - por exemplo, consulte /programming/398008/deny-access-to-svn-folders-on-apache

Obviamente, usar o controle de revisão efetivamente exigirá um pouco de disciplina. você terá o hábito de verificar suas alterações sempre que as fizer - vale a pena o esforço.

cas
fonte
15

Se você especificar Options -Indexeso Directoryem questão, o Apache não gerará uma listagem de diretórios. No entanto, se alguém adivinhar o nome do arquivo, ele ainda poderá acessá-lo se o sistema operacional permitir que o servidor da Web acesse o arquivo.

Michael Hampton
fonte
5
Sim. Se você tem algo que não deseja que seja exibido na web, não o mantenha /var/www.
Jscott
Esta é a melhor resposta para as tl;drpessoas com a resposta de Craig, embora a de Craig seja mais completa.
tacotuesday
@nonak Up vote both :)
jscott
Sobre o assunto da adivinhação, adivinhe quanto tempo levaria para encontrar index.html.bak ou index.bak.html etc. Qualquer coisa tão óbvia não tem chance.
26512 John Gardeniers
1
Atualmente, os computadores adivinham. Portanto, não confie na obscuridade para proteger qualquer coisa importante. BTW, votei na outra resposta. :)
Michael Hampton
2

Se você tiver a listagem de diretórios ativada, esse arquivo certamente estará visível. Mesmo se a listagem de diretórios não estiver ativada, não é recomendável salvar um arquivo que você não deseja que alguém veja em / var / www, porque foi criado para documentos públicos.

rgbc
fonte
0

Não vejo sentido em manter o arquivo de backup /var/www.

Os backups são feitos para corrigir rapidamente as coisas quando você estraga tudo. Eu sugiro que você crie um novo diretório de backup, em alguma unidade principal ( inacessível para o mundo exterior ), e armazene seus backups lá.

Shivek Khurana
fonte