# Casos de la tarea Z10.2 (curso VPS y administración de servidores Linux) Para cada caso, elija qué error es y cuál es el mejor primer paso. Todos los nombres y direcciones son ejemplos. **Errores (de la lección 10.2):** A. Inicio de sesión como root con contraseña B. Una base de datos, caché o clúster de búsqueda abierto a Internet C. La API de Docker abierta o `docker.sock` en un contenedor D. `chmod 777` para quitar un mensaje de error E. `curl ... | bash` y software de cualquier sitio F. Sin actualizaciones, o actualizaciones "más tarde" G. Sin copia de seguridad, o una copia de seguridad que nunca se ha probado H. Panel de administración abierto a todo el mundo, sin verificación en dos pasos I. Secretos en Git o en su archivo compose J. Desactivar el cortafuegos "un momento", todo como root, sin notas --- **Caso 1.** En `web1.example.com`, en `compose.yaml`, el servicio `redis` tiene: `ports: - "6379:6379"`. `ufw status` solo muestra 22, 80 y 443. Un escaneo desde fuera encuentra el 6379 abierto. Primer paso: (a) reiniciar ufw (b) eliminar la regla de puerto o cambiarla por `"127.0.0.1:6379:6379"` y volver a ejecutar `docker compose up -d` (c) asignar otro número de puerto a Redis (d) reiniciar el servidor **Caso 2.** El desarrollador de una aplicación web en `app.example.net` informa de que las subidas de archivos no funcionaban. Lo ha "solucionado" y ahora todos los archivos de `/var/www/app` están en `-rwxrwxrwx`. Primer paso: (a) dejarlo así, ahora funciona (b) dar al usuario del servidor web permisos de escritura solo en la carpeta de subidas, y devolver el resto a 644/755 con otro propietario (c) ejecutar el servidor web como root (d) desactivar AppArmor **Caso 3.** Desde ayer, un repositorio público contiene un archivo `.env` con `MAIL_API_KEY=...` del servidor `web2.example.org`. Primer paso: (a) eliminar el archivo del repositorio (b) revocar la clave en el servicio de correo y crear una nueva, y añadir `.env` a `.gitignore` (c) cambiar el nombre del repositorio (d) no hacer nada **Caso 4.** `sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"` devuelve `permitrootlogin yes` y `passwordauthentication yes`. En el journal aparecen intentos contra root cada minuto. Primer paso: (a) instalar fail2ban y nada más (b) colocar una clave para un administrador normal con sudo, probarla y, después, desactivar el inicio de sesión con contraseña y el inicio de sesión como root con contraseña (c) poner SSH en el puerto 2222 (d) guardar la contraseña de root en un archivo de texto **Caso 5.** `cat /etc/os-release` muestra una versión de Ubuntu cuyo soporte estándar terminó hace tres años, sin ESM. `apt list --upgradable` está vacío. Primer paso: (a) alegrarse, no hay actualizaciones (b) planificar una actualización o un servidor nuevo con una LTS con soporte, con snapshot y copia de seguridad (c) volver a instalar unattended-upgrades (d) reiniciar el servidor **Caso 6.** Un contenedor `portainer` tiene el volumen `/var/run/docker.sock:/var/run/docker.sock` y es accesible en `https://beheer.example.com` con la contraseña `admin123`, sin verificación en dos pasos. Elija el error que permite el mayor daño si se adivina la contraseña. Primer paso: (a) colocar el panel detrás de un túnel SSH o una dirección fija y configurar una contraseña segura con verificación en dos pasos (b) reiniciar el contenedor (c) elegir otro subdominio (d) volver a instalar Docker **Caso 7.** Tras una actualización fallida de la base de datos, resulta que la única copia de seguridad es un snapshot de hace dos meses, en el mismo almacenamiento que el servidor. Nadie ha probado nunca una restauración. Primer paso de cara al futuro: (a) hacer más snapshots (b) configurar copias de seguridad cifradas fuera del servidor (por ejemplo, restic), con monitorización y una prueba de restauración (c) no volver a actualizar nunca la base de datos (d) un segundo disco en el mismo servidor **Caso 8.** En el servidor hay `/usr/local/bin/tool` y un repositorio de paquetes desconocido `extra.list` con la opción `[trusted=yes]`. Nadie sabe de dónde vienen; el administrador anterior instalaba "todo con una sola línea de un sitio web". Primer paso: (a) dejarlo, funciona (b) averiguar qué son el repositorio y el programa, desactivar el repositorio con `trusted=yes`, e instalar solo desde la distribución o desde el repositorio oficial del fabricante con `Signed-By` (c) reiniciar el servidor (d) eliminar todos los paquetes Indique para cada caso: error (A-J) y primer paso (a-d).