¿Qué tan visible es mi / var / www para el mundo exterior?

8

Supongo que esto es más una cuestión de mantenimiento, pero aquí va.

Si creo un archivo de respaldo de mi index.htmlllamado index.html.bak, ¿es posible que alguien del exterior que use httpmi servidor apache2 pueda enumerar el contenido de mi /var/wwwdirectorio? Actualmente no conozco ningún método para hacerlo, pero esto podría deberse a mi falta de experiencia en esta área. ¿Debo almacenar archivos que no necesitan estar a la vista en otro lugar?

Actualmente, la única forma factible en la que puedo pensar que alguien podría descubrir el archivo es si hubiera un enlace explícito en algún lugar que apuntara al archivo. ¿Qué tan visible es mi directorio web?

Chad Harrison
fuente

Respuestas:

11

Para responder directamente a sus preguntas, puede guardar dichos archivos en otro lugar o puede configurar Apache para denegar el acceso a ellos, negar el acceso a * .bak es relativamente simple.

Apache, a menos que esté configurado para no hacerlo (como se mencionó anteriormente en MH), generará y mostrará una lista de directorios para cualquier directorio que no contenga un archivo de índice, definido por la directiva DirectoryIndex, pero generalmente index.html, index.htm, index.php y similares.

En una nota más general:

Es posible que desee considerar el uso de un sistema de control de revisión como SVN o git (o incluso RCS) para mantener versiones antiguas Y un historial de cambios de sus páginas web (incluida la capacidad de ver qué cambió y cuándo y, lo que es más importante, la capacidad de volver a una versión anterior)

Tanto git como svn necesitan un repositorio configurado en otro lugar. RCS es bastante primitivo y básico, pero no requiere ninguna configuración, mantiene el historial de revisiones en el mismo directorio o en un subdirectorio ./RCS si existe. Una molestia menor con RCS es que cuando registra un archivo, cambia los permisos a solo lectura, por lo que debe volver a verificarlo antes de poder editarlo nuevamente (o usar ci -lpara registrar un archivo e inmediatamente verificar fuera).

IMO git es probablemente excesivo para este trabajo, SVN es casi ideal en términos de complejidad frente a la capacidad para administrar el historial de revisión de un conjunto de páginas HTML editadas a mano, y RCS es arcaico pero útil. Con RCS solo puede editar archivos directamente dentro de / var / www, lo que significa que los cambios son "en vivo" tan pronto como guarde el archivo. Con svn o git puede verificar una copia local en, por ejemplo, su directorio de inicio en su máquina de escritorio, editar los archivos, registrar los cambios y luego verificar las actualizaciones en / var / www en el servidor cuando está terminado. También puede verificar los cambios en un servidor provisional primero para probarlos, antes de verificarlos en el servidor de producción.

Luego puede denegar el acceso a los subdirectorios .svn /, .git /, RCS / etc con apache; por ejemplo, consulte /programming/398008/deny-access-to-svn-folders-on-apache

Por supuesto, usar el control de revisión efectivamente requerirá un poco de disciplina. tendrás que acostumbrarte a revisar tus cambios cada vez que los realices; vale la pena el esfuerzo.

cas
fuente
15

Si especifica Options -Indexespara lo Directoryen cuestión, Apache no generará una lista de directorios. Sin embargo, si alguien adivina el nombre del archivo, aún podría acceder a él si el sistema operativo permite que el servidor web acceda al archivo.

Michael Hampton
fuente
55
Sip. Si tiene algo que no desea que se publique en la web, no lo guarde /var/www.
jscott
Esta es la mejor respuesta para aquellas tl;drpersonas con la respuesta de Craig, aunque Craig es más exhaustiva.
tacotuesday
@nonak Up vote both :)
jscott
Sobre el tema de adivinar, adivine cuánto tiempo llevaría encontrar index.html.bak o index.bak.html, etc. Cualquier cosa que sea obvia realmente no tiene ninguna posibilidad.
John Gardeniers
1
Las computadoras hacen las conjeturas en estos días. Así que no confíes en la oscuridad para proteger nada importante. Por cierto, voté por la otra respuesta. :)
Michael Hampton
2

Si tiene habilitada la lista de directorios, entonces ese archivo es ciertamente visible. Incluso si la lista de directorios no está habilitada, no se recomienda guardar un archivo que no desea que alguien vea en / var / www porque está hecho para documentos públicos.

rgbc
fuente
0

No veo ningún punto en mantener el archivo de copia de seguridad /var/www.

Las copias de seguridad se realizan para arreglar las cosas rápidamente cuando las arruinas. Le sugiero que cree un nuevo directorio de copia de seguridad, en alguna unidad central ( inaccesible para el mundo exterior ), y almacene sus copias de seguridad allí.

Shivek Khurana
fuente