Dans quelle mesure mon / var / www est-il visible du monde extérieur?

8

Je suppose que c'est plus une question d'entretien ménager, mais c'est parti.

Si je crée un fichier de sauvegarde de mon index.htmlappelé index.html.bak, est-il possible qu'une personne extérieure utilisant httpmon serveur apache2 puisse lister le contenu de mon /var/wwwrépertoire? Je ne connais actuellement aucune méthode pour le faire, mais cela pourrait être dû à mon manque d'expérience dans ce domaine. Dois-je stocker des fichiers qui ne doivent pas être visibles ailleurs?

Actuellement, la seule façon possible de penser que quelqu'un pourrait découvrir le fichier est s'il y avait un lien explicite pointant vers le fichier. Quelle est la visibilité de mon annuaire Web?

Chad Harrison
la source

Réponses:

11

Pour répondre directement à vos questions - vous pouvez soit conserver ces fichiers ailleurs, soit configurer apache pour leur refuser l'accès - refuser l'accès à * .bak est relativement simple.

Apache, sauf configuration contraire (comme mentionné par MH ci-dessus), générera et affichera une liste de répertoires pour tout répertoire qui ne contient pas de fichier d'index - défini par la directive DirectoryIndex, mais généralement index.html, index.htm, index.php et similaire.

Sur une note plus générale:

Vous voudrez peut-être envisager d'utiliser un système de contrôle des révisions tel que SVN ou git (ou même RCS) pour conserver les anciennes versions ET un historique des modifications de vos pages Web (y compris la possibilité de voir ce qui a changé et quand et, plus important encore, la possibilité de revenir à une version précédente)

Git et svn ont besoin d'un référentiel configuré ailleurs. RCS est assez primitif et basique mais ne nécessite aucune configuration, il conserve l'historique des révisions dans le même répertoire ou dans un sous-répertoire ./RCS s'il en existe un. Un inconvénient mineur avec RCS est que lorsque vous archivez un fichier, il modifie les autorisations en lecture seule, vous devez donc le réessayer avant de pouvoir le modifier à nouveau (ou utiliser ci -lpour archiver un fichier et vérifier immédiatement IT out).

IMO git est probablement exagéré pour ce travail, SVN est presque idéal en termes de complexité par rapport à la capacité de gérer l'historique des révisions d'un ensemble de pages HTML éditées à la main, et RCS est archaïque mais toujours utile. Avec RCS, vous ne pouvez modifier les fichiers directement dans / var / www, ce qui signifie que les modifications sont "en direct" dès que vous enregistrez le fichier. Avec svn ou git, vous pouvez extraire une copie locale, par exemple, votre répertoire personnel sur votre ordinateur de bureau, modifier les fichiers, archiver les modifications, puis extraire les mises à jour dans / var / www sur le serveur lorsqu'il est fini. Vous pouvez également extraire les modifications d'un serveur de transfert en premier pour les tester, avant de les extraire sur le serveur de production.

Vous pouvez ensuite refuser l'accès aux sous-répertoires .svn /, .git /, RCS / etc avec apache - par exemple, voir /programming/398008/deny-access-to-svn-folders-on-apache

Bien sûr, l'utilisation efficace du contrôle de révision prendra un peu de discipline. vous devrez prendre l'habitude de vérifier vos modifications chaque fois que vous les apporterez - cela en vaut la peine.

cas
la source
15

Si vous spécifiez Options -Indexesla Directoryquestion en question, Apache ne générera pas de liste de répertoires. Cependant, si quelqu'un devine le nom de fichier, il pourrait toujours y accéder si le système d'exploitation autorise le serveur Web à accéder au fichier.

Michael Hampton
la source
5
Ouaip. Si vous avez quelque chose que vous ne voulez pas voir diffusé sur le Web, ne le conservez pas /var/www.
jscott
C'est la meilleure réponse pour ces tl;drpersonnes avec la réponse de Craig, bien que celle de Craig soit plus approfondie.
mardi
@nonak Up vote les deux :)
jscott
Sur le sujet des devinettes, devinez combien de temps il faudrait pour trouver index.html.bak ou index.bak.html, etc. Tout ce qui est évident n'a pas vraiment de chance.
John Gardeniers
1
Les ordinateurs font des suppositions de nos jours. Ne comptez donc pas sur l'obscurité pour protéger quoi que ce soit d'important. BTW, j'ai voté pour l'autre réponse. :)
Michael Hampton
2

Si la liste des répertoires est activée, ce fichier est certainement visible. Même si la liste des répertoires n'est pas activée, il n'est pas recommandé d'enregistrer un fichier que vous ne voulez pas que quelqu'un voit dans / var / www car il est fait pour les documents publics.

rgbc
la source
0

Je ne vois aucun intérêt à conserver le fichier de sauvegarde /var/www.

Les sauvegardes sont faites pour réparer rapidement les choses lorsque vous les vissez. Je vous suggère de créer un nouveau répertoire de sauvegarde, dans un lecteur principal ( inaccessible au monde extérieur ), et d'y stocker vos sauvegardes.

Shivek Khurana
la source