El alumno centralizará el código fuente de un proyecto web en la nube con Git (GitLab), adicionalmente visualizará la diferencia entre tráfico HTTP y HTTPS.
- Crea un fork del repositorio https://github.com/ZizuPM/Practica_2_GPC, en tu propia cuenta de Github.
- Ingresa desde una terminal al servidor que instalaste en la Práctica 2, en GCP.
- Cambia al directorio
/var/www/html
. - Clona tu repositorio creado en el paso 1, con el comando
sudo git clone <https://mi_repositorio>
. - Cambia al directorio
/etc/apache2/sites-available/
. - Copia el archivo
000-default.conf
al archivoredesfc.conf
, utiliza la opción-a
en el comandocp
, para que se preserven los atributos del archivo, tales como el dueño, el grupo y los permisos. - Con un editor de texto, abre el archivo
redesfc.conf
copiado en el paso anterior. - Cambia el valor de la directiva
DocumentRoot
, en lugar de que esté establecido con la ruta/var/www/html
, coloca la ruta en donde se encuentra el código HTML y otros elementos web de la carpetacodigo_ejemplo/
de la práctica 2 del repositorio clonado en el punto 4. Por ejemplo,/var/www/html/Practica_2_GCP/codigo_ejemplo
. - Guarda los cambios en el archivo
redesfc.conf
- Cambia al directorio
/var/www/html
. - Cambia tanto el usuario como el grupo del directorio y de sus elementos, por tu usuario y grupo, por ejemplo
chown -R ubuntu:ubuntu redes-2023-1/
- En la terminal ejecuta el comando
sudo a2dissite 000-default.conf
para deshabilitar el sitio actual. Y ejecuta el comandosudo a2ensite redesfc.conf
, para habilitar el nuevo sitio web. Para verificar si la configuración creada es correcta tendras que ejcutarapachectl -t
lo cual te dira si el archivo de configuración es correcto o contiene errores y para que se apliquen los cambios ejecuta reiniciar el servidor Apache, con el comandosudo systemctl restart apache2.service
. - Ingresa desde un navegador web usando la dirección IP pública proporcionada por GCP (la IP Estatica), al servidor web, y deberás visualizar el formulario. Además, ingresa a la ruta http://mi_IP/images, y observa el contenido.
- En el mismo archivo
redesfc.conf
, agrega entre las directivas<VirtualHost></VirtualHost>
lo siguiente. Verifica que la ruta del directorio para tu caso sea el correcto. Esto se usa para evitar que el servidor liste el contenido de los directorios de la ruta configurada enDocumentRoot
, es una configuración de seguridad.
<Directory /var/www/html/Practica_2_GCP/codigo_ejemplo>
Options -Indexes
</Directory>
- Para que se apliquen los cambios ejecuta
sudo systemctl restart apache2.service
. - Ingresa de nuevo a la ruta http://mi_IP/images, y observa el cambio.
- Ejecuta el comando
sudo a2enmod cgid
, para habilitar el módulo de Apache de ejecución de CGI (Common Gateway Interface). - En el mismo archivo
redesfc.conf
, agrega justo debajo de las líneas que se colocaron en el paso 14, las siguientes líneas para configurar la ejecución de scripts de Python en el directorio en donde está el repositorio de git. Verifica que la ruta del directorio para tu caso sea el correcto.
ScriptAlias /cgi-bin/ /var/www/html/Practica_2_GCP/codigo_ejemplo/cgi-bin/
<IfModule cgid_module>
<Directory /var/www/html/redes-2021-1/lab3/codigo_ejemplo/cgi-bin/>
Options -Indexes
Options +ExecCGI
AddHandler cgi-script .py
</Directory>
</IfModule>
- Ingresa al formulario desde un navegador web, y verifica que se esté ejecutando correctamente el script de Python.
- Modifica la página web del formulario agregando una hoja de estilo, y al menos una imagen, colocando los archivos correspondiente en las carpetas destinadas para ello.
- Actualiza tu repositorio git cuando hayas aplicado los cambios.
- En tu equipo ejecuta Wireshark en la interfaz de red conectada a internet, y coloca un filtro para capturar sólo los mensajes que involucren la dirección IP de tu servidor o instancia en GCP, y en el puerto TCP/80.
- En un navegador web, consulta tu sitio, e ingresa un usuario y contraseña en el formulario, y da clic en el botón.
- En Wireshark, identifica y observa el mensaje en dónde se muestran en claro los datos que colocaste en el formulario, incluye la captura de pantalla de esto en tu reporte.
- Cambia tu formulario para que los datos se envíen por el método POST de HTTP, en lugar del método GET, recuerda reiniciar el servicio de Apache para evitar que la caché muestre el formulario anterior. Repite los pasos del 22 al 25.
Se ha desarrollado una guia para familiarizarse con el entorno de Google Cloud y pueden llevar a acabo la practica: https://docs.google.com/document/d/1jy-gZtct7WBHKHrV9OnRDauRAhdM3AB30bLtJqXZS80/edit?usp=sharing
NOTA: La guia solo sirve como material de apoyo, mas no contiene en su totalidad los pasos para llevar acabo la practica.
- Menciona con tus propias palabras las ventajas que tiene centralizar el código fuente con git sin trabajar directamente en el servidor.
- ¿Para qué se usa la directiva
Options -Indexes
? - Menciona algún concepto que no te haya quedado del todo claro (opcional).
- Liga del repositorio GitLab del repositorio con tus cambios.
- Captura de pantalla del tráfico http (no seguro) con wireshark, marcando en dónde se envía la información en claro, tanto para el método GET como para el método POST.
- ¿Cuál es la diferencia que se aprecia en Wiresharl entre los mensajes que en donde se usó el método GET y los mensajes en donde se usa el método POST?, ¿cuál es la diferencia que se nota en el navegador web cuando se usa cada uno de estos métodos?
- El reporte se entrega de manera individual.
- Registrar en el reporte los pasos que sean considerados necesarios para explicar cómo se realizó la práctica, e incluir capturas de pantalla que justifiquen los resultados obtenidos.
- Incluir las respuestas del Cuestionario en el reporte.
- Se pueden agregar posibles errores, complicaciones, opiniones, críticas de la práctica o del laboratorio, o cualquier comentario relativo a la práctica.
- Subir los archivos relacionados con la práctica a Moodle en formato PDF.