Opciones sobre directorios
Opciones sobre directorios
A continuación veremos una serie de opciones aplicables sobre entradas <Directory> en cualquier archivo de configuración, es decir, que podemos aplicar sobre directorios sueltos o sobre partes del servidor según las necesitemos. Las opciones de los directorios indican la prohibición o permiso expreso para poder hacer determinadas operaciones sobre los mismos, de forma que puedan activarse o desactivarse a nivel de servidor completo, host virtual (una sola web concreta) o bien un directorio particular). Las posibles opciones son (más información en http://httpd.apache.org/docs/2.2/en/mod/core.html#options):
- Desactivar la navegación por directorios: “Options –Indexes". Si un usuario accede a un directorio del servidor donde no hay un documento por defecto ni el usuario lo especifica, entonces se mostrará un listado de ficheros existentes en dicho directorio (si está operativo mod_autoindex). Esto en la mayoría de casos es dar demasiada información, por lo que conviene desactivarlo salvo que sea estrictamente necesario.
- Desactivar los Server Side Includes: “Options –Includes", que es una tecnología que permite incluir en páginas web el contenido de otros archivos. Conviene desactivarla si no se va a usar. La variante IncludesNOEXEC desactiva la ejecución de comandos (mediante
#exec cmdy#exec cgi) desde páginas que usen esta tecnología. - Desactivar la ejecución de programas CGI: “Options –ExecCGI”. Al igual que se dijo para IIS, es conveniente por temas de seguridad desactivar esta opción en todos los directorios de la web, salvo en uno concreto destinado a alojar todos los ejecutables, donde se activará. De esta forma minimizaremos la posibilidad de que un atacante ejecute código a su voluntad a través de un error en cualquier directorio de la aplicación.
- No permitir a Apache seguir enlaces simbólicos: “Options –FollowSymLinks”. Es importante porque un enlace simbólico malicioso puede llevarnos a acceder a archivos fuera de la estructura de directorios de la web, con el riesgo de manipularlos o destruirlos.
- SymLinksIfOwnerMatch: Sirve para que el servidor siga los enlaces simbólicos en los que el fichero o directorio final pertenezca al mismo usuario que el propio enlace.
- MultiViews: Habilita este elemento definido por mod_negotiation.
- Si queremos desactivar todas las posibles opciones, usaremos “Options None”. Si queremos desactivar unas pocas, podemos poner “-” sólo delante de las que queramos desactivar (Ej.: Options -Indexes). Si queremos activarlas todas salvo MultiViews (algo poco aconsejable en la mayoría de casos), debemos usar Options All.

Todo esto es aplicable tanto a nivel de servidor completo, de virtual host (web concreta del servidor) o carpeta individual, siguiendo la precedencia antes mencionada. De esta forma podríamos detallar esta configuración con el nivel de grano que deseemos en cada momento.