Cómo denegar el listado de directorios en Apache2

En este artículo explicaré como habilitar o deshabilitar el listado de directorios bajo Apache2.x, aprovechando que hoy me han realizado esa pregunta y sinceramente me ha parecido interesante, ya que lo que se quería saber es cómo deshabilitar el listado de directorios en la definición del Virtual Host y no utilizar un .htaccess. Por eso he querido recogerlo en el Blog, por si alguien más tiene el mismo tipo de duda.

Cuando desde nuestro navegador preferido solicitamos una URL como podría ser http://web01.boscolopez.net/pruebasblog/, apache buscará por defecto los archivos definidos en la directiva «DirectoryIndex» y en caso de encontrar uno de ellos nos lo mostrará; el contenido habitual de esta directiva es:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Esta directiva la podemos encontrar definida en el fichero dir.conf, que encontraremos en el directorio /etc/apache2/mods-available.

Si nosotros no le definimos nada y en ese directorio no existe ninguno de los ficheros declarados en la directiva anterior, nos listará el contenido de ese directorio como muestro en la siguiente imagen:

Ahora os mostraré en fichero de configuración de Virtual Host, de tal forma que lista el directorio contenido del directorio:

<VirtualHost *:80>
        ServerAdmin webmaster@boscolopez.net
        ServerName  web01.boscolopez.net
        RewriteEngine On
        RewriteRule ^(server-info|server-status) - [L]
        DocumentRoot /var/www/vhosts/web01_boscolopez_net/

        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>

        <Directory /var/www/vhosts/web01_boscolopez_net>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

<IfModule mod_headers.c>
    ExpiresActive on
    ExpiresDefault      "access plus 1 month"
    ExpiresByType text/css      "access plus 1 year"
    ExpiresByType application/json      "access plus 0 seconds"
    ExpiresByType application/xml       "access plus 0 seconds"
    ExpiresByType text/xml      "access plus 0 seconds"
    ExpiresByType image/x-icon  "access plus 1 week"
    ExpiresByType text/x-component      "access plus 1 month"
    ExpiresByType text/html     "access plus 0 seconds"
    ExpiresByType application/javascript        "access plus 1 year"
    ExpiresByType text/cache-manifest   "access plus 0 seconds"
    ExpiresByType audio/ogg     "access plus 1 month"
    ExpiresByType image/gif     "access plus 1 month"
    ExpiresByType image/jpeg    "access plus 1 month"
    ExpiresByType image/png     "access plus 1 month"
    ExpiresByType video/mp4     "access plus 1 month"
    ExpiresByType video/ogg     "access plus 1 month"
    ExpiresByType video/webm    "access plus 1 month"
</IfModule>
        LogLevel warn
        ErrorLog ${APACHE_LOG_DIR}/web01_error.log
        CustomLog ${APACHE_LOG_DIR}/web01_access.log combined
</VirtualHost>

La parte que nos interesa o que debemos modificar es la siguiente:

<Directory /var/www/vhosts/web01_boscolopez_net>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

Si queremos que no liste el contenido del directorio aunque no encuentre uno de los archivos definidos en la directiva DirectoryIndex, debemos poner lo siguiente:

 <Directory /var/www/vhosts/web01_boscolopez_net>
                Options -Indexes
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

Entonces de esta forma al acceder a la URL de ejemplo http://web01.boscolopez.net/pruebasblog/, nos mostrará el siguiente mensaje:

Espero que os sea de ayuda o de referencia 🙂

Sobre Bosco López

/dev/null

Te puede interesar también

Mostrar alertas en Nagios con SNMP TRAPS

La monitorización de dispositivos de red, suele realizarse mediante SNMP, pero como es lógico no …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.