Enviado por frojas el Vie, 07/06/2019 - 15:05

 

Un problema recurrente de privacidad en aplicaciones web es el despliegue de archivos y carpetas de los cuales está compuesto una aplicación, y muchas veces estas carpetas pueden contener información sensible como datos de configuración, archivos de configuración del repositorio, lista de usuarios, documentos pdf que son generados y almacenados en el mismo servidor y que en teoría son accesibles previa autenticación o incluso copias de seguridad de bases de datos, que desde ya es una mala práctica de seguridad.

La realidad nos muestra que hay carpetas, archivos expuestos sin restricción, esto debido a que esta configuración en servidores Apache viene habilitado por defecto, razón por la cual es importante conocer esta configuración y deshabilitarla. El servidor Nginx tiene deshabilitado por defecto la funcionalidad del listado de directorio.

 

 

 

Ejemplo. Listado de directorio (Index Of) Habilitado

Index Of habilitado

Deshabilitando Index Of en Apache

Las siguientes configuraciones fueron realizadas en un servidor Debian 9, Apache 2.4 y usuario con privilegios sudo. Dependiendo del caso puede elegir una de las siguientes opciones para deshabilitar el listado de directorio.

1. Deshabilitar el módulo autoindex

Es el método más efectivo, pero se tiene que hacer un análisis previo para aplicarlo, ya que deshabilita esta funcionalidad a nivel global, es decir, si se quiere compartir archivos por HTTP (No recomendado)  ya no se podría hacer, y los cambios afectarían a todas las aplicaciones bajo el servidor.

$ sudo a2dismod autoindex

Después de ejecutar se mostrará el mensaje de advertencia y se tiene que responder con la siguiente frase:

To continue type in the phrase 'Yes, do as I say!' or retry by passing '-f': Yes, do as I say!

Reiniciar el servidor

$ sudo systemctl restart apache2.service

 2. Deshabilitar por archivo de configuración del sitio

Este método es el recomendable, ya que permite deshabilitar esta funcionalidad solo para el sitio en cuestión. Por ejemplo si se tiene el sitio www.sitio-de-prueba.com con el archivo de configuración (virtualhost) `sitio-de-prueba.conf`. Agregar en el archivo la siguiente directiva:

<VirtualHost *:80>

......

<Directory /var/www/sitio-de-prueba>
    Options -Indexes
</Directory>

.......

</VirtualHost>

Guardar y recargar la configuración.

$ sudo systemctl reload apache2.service

 3.  Deshabilitar a través del archivo .htaccess 

Es una alternativa similar al archivo de configuración y se tiene modificar o crear dependiendo del caso el archivo .htaccess y agregar:

Options -Indexes

 Guardar el archivo y reiniciar el servidor.

$ sudo systemctl restart apache2.service

El resultado de aplicar una de las configuraciones anteriores, será la restricción de listar archivos y carpetas.

Index Of Deshabilitado

Index Of en Nginx

Por defecto Nginx no tiene habilitado esta funcionalidad.