Tarea 3

Grupo: papulinux

Estructura de carpetas

Se organizó el código en carpetas separadas por sección, para mantener el trabajo ordenado entre los integrantes del equipo: scripts de respaldo, archivos temporales antes de subirlos, exportador propio y proxy, certbot, WordPress y app propia.

Accesos

Supuestos

  • Como el historial del sistema no mostraba ningún acceso de usuario anterior a la fecha de inicio del trabajo grupal, se tomó ese primer login como el “primer logging” oficial.

Problemas y soluciones

  • Desfase horario: el servidor corre en horario UTC, distinto al horario local de Chile (UTC-4). Por lo que se decidió registrar la hora usando la del servidor (UTC), para mantener consistencia con el resto de los logs del sistema.
  • Reconstrucción del primer acceso: como no se registró el primer ingreso manualmente en el momento, se recuperó la fecha/hora real usando el comando last, filtrando los eventos de tipo reboot (que no corresponden a accesos de usuario) y quedándose con el login más antiguo del usuario papulinux.

Respaldos

Supuestos

  • Como el bucket S3 es compartido por todo el curso, se creó una subcarpeta/repositorio propia del grupo dentro de él, para no mezclar los backups con los de otros grupos.
  • Se reutilizan los mismos repositorios de restic (Hornet y S3) tanto para los backups de $HOME como para los dumps de MySQL, diferenciando cada respaldo por el nombre del archivo subido, en lugar de crear un repositorio distinto para cada script.
  • Las credenciales (contraseña de restic y llaves de S3) se guardaron en archivos ocultos con permisos restringidos, en vez de escribirlas directamente en los scripts.

Problemas y soluciones

  • Error de firma en S3 (The request signature we calculated does not match...): al inicializar y probar el repositorio en S3, restic devolvía un error de autenticación. Se detectó que el AWS_SECRET_ACCESS_KEY guardado en ~/.s3_credentials tenía un carácter mal copiado (y el AWS_ACCESS_KEY_ID estaba duplicado por error). Se corrigió el archivo con las credenciales correctas y el error se resolvió.

Monitoreo

Servicios Docker