Introducción
El panel tiene una cuenta restringida preparada, pero aún conecta mediante la cuenta predeterminada amplia de Redis. Cambiarás su configuración y retirarás esa vía conservando el monitor.
Este entorno independiente incluye la cuenta dashboard de la lección anterior. Solo necesitas sus comandos Redis y conceptos ACL. Cada operación abre una conexión nueva, por lo que la siguiente solicitud usa la configuración actual.
Establecer la situación inicial de la aplicación
En este paso, establecerás el funcionamiento normal en este entorno nuevo. Abre Dashboard. La entrada es Ticket 104: password reset, el resultado está vacío y el usuario es default. Pulsa Process ticket y confirma Processed: Ticket 104: password reset.
En Client, lee la configuración privada. cat muestra el archivo. La terminal comienza en /workspace, su directorio de configuración:
cat app.json
JSON almacena campos con nombre entre llaves. username identifica al usuario Redis y password aporta su secreto de autenticación. Las cadenas van entre comillas dobles y las comas separan campos. Ahora el usuario es default y la contraseña está vacía.
La aplicación relee el archivo en cada solicitud y abre nuevas conexiones Redis. No necesitas reiniciar ni escribir un cliente. Una cuenta monitor separada lee monitor:heartbeat; consérvala al modificar la cuenta predeterminada. El archivo contiene secretos, por eso es privado y no se sirve públicamente.
Cambiar la conexión del panel
En este paso, harás que la aplicación use la cuenta restringida. En Client, sustituye la configuración de dos campos. cat > app.json redirige el texto siguiente al archivo, reemplazándolo. EOF entre comillas inicia un documento integrado; pega todas las líneas, incluido el EOF final solo en su línea. Las comillas impiden expansiones del shell dentro del JSON.
cat > app.json <<'EOF'
{"username":"dashboard","password":"Dash-Lab-42"}
EOF
Solo cambia la configuración. En esta instantánea nueva, la cuenta ya tiene GET/SET sobre support:*. Recarga Dashboard, comprueba que el usuario sea dashboard y vuelve a pulsar Process ticket. Un resultado antiguo no basta: esta operación nueva demuestra lectura y escritura con la cuenta configurada.
Si aparece WRONGPASS, corrige las credenciales JSON y repite. Para NOPERM, usa cache-admin ACL GETUSER dashboard en Cache Server para examinar patrón y comandos. El comando completo de reinicio de reglas del primer laboratorio recupera una cuenta mal configurada. Repite el bloque anterior para reparar JSON mal formado.
No uses maint como atajo: la aplicación debe tener una cuenta propia limitada.
Retirar la entrada predeterminada amplia
En este paso, desactivarás la vía automática sin desactivar cuentas legítimas. Cambia a Cache Server. La cuenta de mantenimiento de cache-admin sigue habilitada, por lo que podrás administrar.
ACL SETUSER default off impide nuevas autenticaciones como usuario predeterminado. Guarda el cambio activo en el archivo ACL configurado:
cache-admin ACL SETUSER default off
cache-admin ACL SAVE
Ambos responden OK. Cambia a Client e intenta una conexión nueva sin credenciales:
redis-cli -h cache-server GET support:ticket
Espera NOAUTH Authentication required., el rechazo deseado. Es distinto de NOPERM, que indica falta de permisos de una cuenta autenticada. Cada invocación abre una conexión nueva. Desactivar un usuario no garantiza terminar sesiones ya autenticadas; esa revocación queda fuera del ejercicio.
Recarga Dashboard y pulsa Process ticket. La cuenta identificada debe seguir funcionando. Si desactivaste otra cuenta, repite su regla completa correcta desde mantenimiento y guarda de nuevo. No reabras la cuenta predeterminada amplia para ocultar un error de configuración de la aplicación.
Probar seguridad y disponibilidad juntas
En este paso, compararás trabajo permitido, datos prohibidos y un comando innecesario. Usa Client. En cada petición --askpass, escribe Dash-Lab-42.
redis-cli -h cache-server --user dashboard --askpass GET support:result
El resultado procesado sigue siendo legible. El siguiente comando pide deliberadamente datos financieros ajenos:
redis-cli -h cache-server --user dashboard --askpass GET finance:payroll
Espera NOPERM. CONFIG GET lee ajustes del servidor; incluso esta lectura administrativa es innecesaria. El asterisco entre comillas solicita todos los nombres y debe llegar sin cambios a Redis:
redis-cli -h cache-server --user dashboard --askpass CONFIG GET '*'
Espera un NOPERM por permisos de comando. Usa ahora la identidad del monitor existente e introduce Monitor-Lab-42:
redis-cli -h cache-server --user monitor --askpass GET monitor:heartbeat
Espera healthy. Desactivar todas las cuentas o parar Redis rompería esta prueba positiva y no es una reparación. En Cache Server, muestra las ACL activas y el archivo guardado:
cache-admin ACL LIST
cat /data/users.acl
Las entradas guardadas deben coincidir con las activas, incluida default off. Si difieren, repite cache-admin ACL SAVE. Termina pulsando de nuevo Process ticket en Dashboard. La disponibilidad real junto con rechazos pertinentes establece el resultado; una página saludable por sí sola no demuestra privilegio mínimo.
Resumen
Cambiaste la aplicación real a su cuenta Redis restringida, desactivaste el acceso predeterminado nuevo, guardaste las ACL y comprobaste solicitudes prohibidas y operaciones legítimas de negocio y monitor. Las pruebas usan conexiones nuevas; no afirman revocar sesiones existentes.


