Implementación de Seguridad y Control de Acceso en Apache HTTP Server
Clasificado en Informática
Escrito el en
español con un tamaño de 6,01 KB
1. Configuración de Apache en Windows/Linux
Dada la siguiente configuración de Apache en un contexto de servidor web:
Options Indexes FollowSymLinks
AllowOverride None
Order Allow,Deny
Allow from All1.1. Visualización de la Petición por Defecto
Pregunta: ¿Qué veremos al lanzar en un navegador la petición: http://192.168.1.132, siendo esa dirección IP la correspondiente al servidor Apache?
Respuesta: Se mostrará la página por defecto de Apache (generalmente index.html o index.php) ubicada en el DocumentRoot.
1.2. Comportamiento sin Página por Defecto
Pregunta: Explique qué sucedería si la página por defecto no existe. ¿Qué se mostrará como resultado de dicha petición? Razone la respuesta.
Respuesta: Se mostrará el listado de directorios del servidor. Esto ocurre porque la directiva Options Indexes está activa en la configuración, permitiendo que el servidor genere y muestre un índice navegable del contenido del directorio si no encuentra un archivo de índice predeterminado.
1.3. Creación de Directorio
Pregunta: Cree un directorio llamado prueba dentro del DocumentRoot (utilice rutas absolutas).
Respuesta:
mkdir /var/www/prueba1.4. Restricción de Visualización de Contenido
Pregunta: Configure Apache para que, cuando se realice la petición http://192.168.1.132/prueba, no se permita visualizar el contenido de dicho directorio. La configuración debe realizarse en el fichero del sitio virtual por defecto (000-default.conf). Utilice rutas absolutas.
Respuesta: Se debe modificar la configuración del Virtual Host por defecto, añadiendo una directiva <Directory> que deshabilite la indexación para la ruta específica:
<Directory /var/www/prueba>
Options -Indexes
AllowOverride None
Require all granted
</Directory>1.5. Definición de Fichero de Índice Específico
Pregunta: Cree un fichero llamado controlDaw.html dentro del nuevo directorio que acaba de crear y configure Apache para que, cuando se haga la petición http://192.168.1.132/prueba, visualice dicho fichero.
Respuesta:
Pasos de Implementación:
- Creación del archivo:
touch /var/www/prueba/controlDaw.html - Configuración de Apache: Dentro de la directiva
<Directory>o en el contexto del Virtual Host, se utiliza la directivaDirectoryIndex:
DirectoryIndex controlDaw.html1.6. Resultado tras Eliminación del Fichero de Índice
Pregunta: Si se eliminara el fichero controlDaw.html recién creado, ¿qué resultado tendría la petición http://192.168.1.132/prueba?
Respuesta: Se produciría un error 403 Forbidden. Esto se debe a que el servidor no encuentra el archivo de índice especificado (controlDaw.html) y, al tener deshabilitada la opción de indexar el contenido (Options -Indexes), deniega el acceso al directorio.
1.7. Personalización del Mensaje de Error 403
Pregunta: Modifique el mensaje de error correspondiente al código de error anterior mediante la directiva apropiada para que se visualice un mensaje apropiado al tipo de error producido.
Respuesta: Se utiliza la directiva ErrorDocument:
ErrorDocument 403 "Fichero no encontrado"2. Autenticación HTTP Digest en Linux
Contexto: Se ha creado el directorio prueba en /var/www/html y un fichero controlDaw.html con determinado contenido en dicho directorio.
2.1. Habilitación del Módulo de Autenticación
Pregunta: Habilite el módulo auth_digest y recargue el fichero de configuración.
Respuesta:
sudo a2enmod auth_digest
sudo service apache2 reload2.2. Pasos para la Autenticación Digest
Pregunta: Indique los pasos necesarios para poner en funcionamiento este tipo de autenticación.
Respuesta:
El primer paso es crear un fichero de contraseñas para la autenticación del sitio en concreto. Este fichero debe almacenarse en un lugar seguro (fuera del DocumentRoot), como el directorio passwd creado en el ServerRoot de Apache (ej. /etc/apache2/passwd/). Lo llamaremos prueba.digest y añadiremos los usuarios que queramos que tengan acceso.
Para crear el fichero y añadir el primer usuario (admin1) al realm prueba, se utiliza el comando htdigest:
sudo htdigest -c /etc/apache2/passwd/prueba.digest prueba admin12.3. Configuración de Acceso Restringido
Pregunta: Escriba el contenido del fichero de configuración para que se permita el acceso al directorio prueba únicamente al usuario admin1.
Respuesta: Esta configuración debe incluirse dentro de una directiva <Directory> que apunte a la ruta restringida:
<Directory /var/www/html/prueba>
AuthType Digest
AuthName "Programación"
AuthDigestProvider file
AuthUserFile "/etc/apache2/passwd/prueba.digest"
Require user admin1
</Directory>