# Actividad Apache en clase (Actividad 1) Nicolás Andrés Ortega Froysa ## Configuración DNS En primer lugar, será necesario configurar nuestro DNS local (de nuestra máquina) para redireccionar la dirección `asir2.es` a nuestra máquina (i.e. `127.0.0.1`). Esto se puede hacer con el comando siguiente: ```bash $ echo "127.0.0.1 asir2.es" >> /etc/hosts ``` Con esto, si le hacemos un `ping` a `asir2.es` nos debería de salir respuestas de nuestra propia máquina: ``` root@debian-redes:~# ping asir2.es PING asir2.es (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.016 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.041 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.046 ms ^C --- asir2.es ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2053ms rtt min/avg/max/mdev = 0.016/0.034/0.046/0.013 ms ``` ## Configuración Inicial de Apache La raíz de nuestro sitio web se encontrará en `/var/www/asir2.es`, luego creamos este directorio con el comando `mkdir`. Luego, para configurar el Apache como tal, nos vamos al directorio `/etc/apache2/sites-available/` y hacemos una copia del archivo `000-default.conf` que se denominará `asir2.es.conf`, y nos interesa hacer un par de cambios al nuevo archivo: 1. Descomentar la línea que pone `ServerName` y cambiar el dominio a `asir2.es`. 2. Cambiar la directiva `DocumentRoot` a `/var/www/asir2.es` (la raíz de nuestra web). 3. Por motivos de seguridad, deshabilitamos la opción de `Indexes` para `/var/www/` en nuestro `/etc/apache2/apache2.conf` para que sea de la forma siguiente: ``` Options FollowSymLinks AllowOverride None Require all granted ``` Una vez hecho estos cambios, lo aplicamos primero cambiando al directorio `/etc/apache2/sites-enabled/` y haciendo un enlace simbólico a nuestra configuración nueva y recargando la configuración del servicio de apache: ```bash $ ln -s ../sites-available/asir2.es.conf ./asir2.es.conf $ systemctl reload apache2.service ``` ## Archivos de la Web En primer lugar, hemos de configurar nuestro servidor para reconocer el archivo de índice `esinicio.html`. Esto lo hacemos añadiendo la directiva `DirectoryIndex esinicio.html` a nuestro _VirtualHost_. Luego el archivo lo creamos con el comando siguiente: ```bash $ echo "Empezamos" > /var/www/asir2.es/esinicio.html ``` También configuraremos un documento de error personalizado para los errores 403. Para hacer esto añadimos primero la directiva en nuestra configuración `ErrorDocument 403 /error403.html`. Una vez guardado, creamos el archivo como tal con el comando siguiente: ```bash $ echo "No se puede acceder" > /var/www/asir2.es/error403.html ``` Cuando recargamos nuestra configuración, veremos que ya están disponibles estos archivos. ## Permisos de Directorios Vamos a crear ahora un directorio en la que no tiene acceso el usuario que se denomina `demo/`. Esta carpeta la creamos en primer lugar con `mkdir`. No queremos que nadie tenga acceso a este directorio, así que ponemos lo siguiente en nuestra configuración: ``` Options FollowSymLinks AllowOverride All Require all denied ``` Al recargar la configuración, podemos probar que ha funcionado correctamente creando un archivo `esinicio.html` en `demo/` y viendo si podemos cargar `http://asir2.es/demo/`. Si nos da nuestra página de error 403, entonces está bien configurado. Luego creamos otra carpeta inferior que se denomina `otro/` dentro de `demo/` al que los usuarios sí pueden acceder. Como antes, creamos el directorio con `mkdir`, y luego añadimos lo siguiente a nuestra configuración: ``` Options FollowSymLinks AllowOverride All Require all granted ``` Después de recargar la configuración, podemos asegurarnos de que funciona añadiendo un archivo `esinicio.html` al directorio y reiniciando. ## Cambio de Puerto Para cambiar de puerto simplemente hemos de cambiar el puerto de nuestro _VirtualHost_ de 80 a 8031, de tal modo que se parece a lo siguiente: ``` ``` Y también hay que añadir el puerto a nuestro archivo `/etc/apache2/ports.conf`: ``` Listen 8031 ``` ## Alias Creamos primero nuestros ficheros para el alias: ```bash $ mkdir /home/asir2.es/ $ touch enlace.html ``` Una vez creado, configuramos el directorio con la directiva siguiente: ``` Options FollowSymLinks AllowOverride All Require all granted ``` Y luego, en nuestro _VirtualHost_, añadimos la directiva de alias: ``` Alias /enlace/ "/home/asir2.es/enlace.html" ``` ## Autenticación Para crear un directorio protegido por autenticación, primero creamos el directorio `admin` con `mkdir`. Luego creamos una directiva para este directorio: ``` Options FollowSymLinks AllowOverride All Require all denied AuthName "Acceso restringido" AuthType Basic AuthUserFile /etc/apache2/htpass Require user usuario ``` Luego creamos el archivo `htpass` con el comando siguiente, introduciendo la contraseña que queremos (e.g. `laClave-2020`), y moviendo el archivo a `/etc/apache2/`: ```bash $ htpasswd -c htpass admin $ mv htpass /etc/apache2/ ``` ## Derechos de Autor Copyright © 2022 Nicolás A. Ortega Froysa License: CC-BY-ND 4.0 International