Ejercicio 4: Mapear URL a ubicaciones de un sistema de ficheros
Crea un nuevo host virtual que es accedido con el nombre www.mapeo.com, cuyo DocumentRoot sea /srv/mapeo.
<VirtualHost *:80>
ServerName www.mapeo.com
ServerAdmin webmaster@localhost
DocumentRoot /srv/mapeo
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#configuramos virtualhost
fran@debian:/etc/apache2/sites-available$ sudo a2ensite mapeo.conf
Enabling site mapeo.
To activate the new configuration, you need to run:
systemctl reload apache2
#le damos permisos de propietario adecuados
fran@debian:/etc/apache2/sites-available$ sudo chown -R www-data:www-data /srv/mapeo/
#por ultimo recargamos apache para que se inicie la configuración nueva
fran@debian:/etc/apache2/sites-available$ systemctl reload apache2
-
Cuando se entre a la dirección www.mapeo.com se redireccionará automáticamente a www.mapeo.com/principal, donde se mostrará el mensaje de bienvenida.* muevo el index.html a /srv/mapeo/principal
#en mapeo.conf Redirect 301 /index.html /principal
-
En el directorio principal no se permite ver la lista de los ficheros, no se permite que se siga los enlaces simbólicos y no se permite negociación de contenido. Muestra al profesor el funcionamiento. ¿Qué configuración tienes que poner?
<Directory "/srv/mapeo"> Options -Indexes -FollowSymLinks -Multiviews </Directory>
- Si accedes a la página www.mapeo.com/principal/documentos se visualizarán los documentos que hay en /home/usuario/doc. Por lo tanto se permitirá el listado de fichero y el seguimiento de enlaces simbólicos siempre que el propietario del enlace y del fichero al que apunta sean el mismo usuario. Explica bien y pon una prueba de funcionamiento donde se vea bien el seguimiento de los enlaces simbólicos.
Creo un directorio llamado documentos en mi carpeta principal y creo los enlaces simbolicos:
root@debian:/srv/mapeo/principal/documentos# sudo ln -s /home/fran/Documentos/prueba.txt
root@debian:/srv/mapeo/principal/documentos# sudo chown -R www-data:www-data prueba.txt
root@debian:/srv/mapeo/principal/documentos# ln -s /root/prueba/pruebaroot.txt
root@debian:/srv/mapeo/principal/documentos# chown www-data:www-data pruebaroot.txt
root@debian:/srv/mapeo/principal/documentos# ls -l
total 0
lrwxrwxrwx 1 root root 27 oct 22 09:34 pruebaroot.txt -> /root/prueba/pruebaroot.txt
lrwxrwxrwx 1 www-data www-data 32 oct 21 13:20 prueba.txt -> /home/fran/Documentos/prueba.txt
He creado varios documentos para probar de diferentes formas he dejado la creación de dos de ellos para que se pueda ver como crear un enlace simbólico.
Creo la redirección y doy los permisos al directorio /home/fran/Documentos
Usando:
- Indexes :
Si se solicita una URL que se asigna a un directorio, y no hay DirectoryIndex ( por ejemplo , index.html) en ese directorio, mod_autoindexse devolverá una lista formateada del directorio. - SymLinksIfOwnerMatch :
El servidor solo seguirá enlaces simbólicos para los cuales el archivo o directorio de destino es propiedad del mismo ID de usuario que el enlace.
<VirtualHost *:80>
ServerName www.mapeo.com
ServerAdmin webmaster@localhost
DocumentRoot /srv/mapeo/
Redirect 301 /index.html /principal
Redirect 301 /srv/mapeo/principal/documentos /principal/documentos
<Directory "/home/fran/Documentos">
Options Indexes SymLinksIfOwnerMatch
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Como podemos ver en la captura no podemos ver el archivo que he creado con el usuario root
- En todo el host virtual se debe redefinir los mensajes de error de objeto no encontrado y no permitido. Para el ello se crearan dos ficheros html dentro del directorio error. Entrega las modificaciones necesarias en la configuración y una comprobación del buen funcionamiento.
root@debian:/srv/mapeo# mkdir error
root@debian:/srv/mapeo/error# nano error403.html
root@debian:/srv/mapeo/error# nano error404.html
#Añadimos las siguientes lineas a nuestro archivo de configuración:
ErrorDocument 403 /error/error403.html
ErrorDocument 404 /error/error404.html
#Añado la ruta de mi carpeta css y la restrinjo
<Directory "/srv/mapeo/css">
Require all denied
</Directory>
Escrito por Fran Madueño Estudiante de administración de sistemas operativos
(Dos Hermanas, Sevilla).