Endurecimiento de la seguridad de Redis / Valkey (ACL, TLS, comandos peligrosos)
RedisNivel: AvanzadoDuración: 5 min (auditoría) – 90 min (endurecimiento completo)No es una guía de instalación ni de operación diaria: es un runbook por escenarios para endurecer sin interrupción un Redis o Valkey en funcionamiento (un solo servidor, réplica + Sentinel o Cluster). Auditoría de seguridad de solo lectura, usuarios ACL y desactivación del usuario default, requirepass/masterauth, bind y protected-mode, protected configs frente al abuso de CONFIG/DEBUG/MODULE, migración en caliente a TLS (clientes, replicación, Sentinel, cluster bus) y permisos de archivos; al final se repite la auditoría para demostrar que los riesgos están cerrados. Los sistemas instalados con las guías de instalación de DBAtlas ya tienen contraseña y un firewall restrictivo: empiece por la auditoría y aplique solo los escenarios que muestren RISK o WARN. El backup y la operación diaria están en guías de Redis aparte.
Topología: Un solo servidor, master + réplica + Sentinel o Redis Cluster
Escenarios
- Auditoría del estado de seguridad (solo lectura) — No cambia nada. El acceso sin contraseña, el usuario default, las direcciones en escucha, protected-mode, los comandos peligrosos, TLS, la contraseña de Sentinel y los permisos de archivos se informan como OK / WARN / RISK. Elija esto si no sabe por dónde empezar.
- Endurecimiento completo (todo en orden) — Auditoría → usuarios ACL (administrador, aplicación, replicación, Sentinel) y desactivación del usuario default → bind/protected-mode/firewall → comandos peligrosos y protected configs → TLS → permisos de archivos → auditoría final. En réplicas/Sentinel, de forma rolling; los pasos de riesgo piden confirmación.
- Usuarios ACL y desactivación del usuario default (Redis 6+) — Todo el mundo se conecta como usuario default con una única contraseña (o sin ella). Se crean usuarios distintos para el administrador, la aplicación (solo sus propias claves, sin comandos peligrosos), la replicación y Sentinel, se escriben en el aclfile y, cuando las aplicaciones se han migrado, se desactiva default.
- Redis sin contraseña: requirepass / masterauth (medida rápida) — No hay ninguna contraseña y no hay tiempo para pasar a ACL. Se define en caliente una contraseña común en todos los nodos (requirepass + masterauth para la replicación, auth-pass para Sentinel); las aplicaciones ya no pueden conectarse sin contraseña.
- Restringir el acceso de red (bind 0.0.0.0, protected-mode, firewall) — Redis escucha en todas las interfaces o funciona con protected-mode no. bind se reduce a localhost + la IP interna, se activa protected-mode y el firewall solo permite los nodos y la red de aplicación. Se aplica en caliente, las conexiones existentes no se cortan; es el paso que más rápido reduce el riesgo.
- Comandos peligrosos y abuso de CONFIG (FLUSHALL, CONFIG, DEBUG, MODULE) — Frente al abuso de CONFIG SET dir/dbfilename para escribir archivos en el servidor (clave SSH, cron) y frente a FLUSHALL/DEBUG/MODULE LOAD: se mantienen desactivados enable-protected-configs, enable-debug-command y enable-module-command, y se retira @dangerous a las aplicaciones; en versiones antiguas, rename-command.
- Cifrar las conexiones: TLS (clientes, replicación, Sentinel, cluster bus) — El tráfico va sin cifrar. El puerto TLS se abre en caliente junto al puerto actual, la replicación y Sentinel pasan a TLS y, cuando las aplicaciones se han cambiado, se cierra el puerto sin cifrar (port 0).
- Permisos de archivos y usuario de ejecución — redis.conf (contiene contraseñas), el archivo ACL, los archivos RDB/AOF y de log son legibles por otros usuarios, o Redis se ejecuta como root. Los permisos se restringen a 640/750 y la propiedad pasa al usuario del servicio.
Antes de empezar
- root/sudo en todos los nodos; SSH desde el primer nodo a los demás (para copiar el archivo de contraseñas y los certificados).
- Redis 6.2+ o Valkey 7.2+ (6.0+ para ACL, 7.0+ para protected configs).
- La replicación… y Sentinel… están sanos; las operaciones rolling no se hacen sobre una topología con problemas.
- Lista de aplicaciones y versiones de las bibliotecas cliente: para ACL, usuario + contraseña (cliente Redis 6+); para TLS, soporte de rediss://; para los clientes que usan Sentinel, soporte de la contraseña de Sentinel y de TLS.
- openssl está instalado (generación de contraseñas y certificados).
Fases de la guía
- Preparación: red de seguridad y herramientas auxiliares — Copia de la configuración y de las ACL · Escribir las herramientas auxiliares (dbatlas-rconf, dbatlas-rcli, dbatlas-redis-restart) · Escribir la contraseña de administrador en un archivo temporal
- Auditoría del estado (solo lectura) — Informe de seguridad: … · Informe de Sentinel: … · Asociar los hallazgos a los escenarios
- Contraseña: requirepass y masterauth (en caliente) — Definir la contraseña común: … · masterauth: … · auth-pass de Sentinel: … · requirepass: … · Contraseña para Sentinel: … · ¿Están sanos la replicación y Sentinel? …
- ACL: diagnóstico y contraseñas de usuarios — Diagnóstico: ¿quién está conectado con qué usuario? · Generar las contraseñas de los usuarios internos · Copiar el archivo de contraseñas a los demás nodos
- ACL: desactivar el usuario default — ¿Quedan clientes conectados como default?: … · Desactivar el usuario default: … · Verificar: acceso sin autenticación, privilegios de la aplicación, replicación · Contraseña para Sentinel: …
- Acceso de red: firewall — Reglas de firewall
- Comandos peligrosos: diagnóstico — Protected configs y comandos debug/module: …
- Comandos peligrosos: verificación — ¿Se rechazan CONFIG SET dir y DEBUG?: …
- TLS: certificados — Soporte de TLS: … · Generar la CA interna y los certificados de servidor · Distribuir los certificados · Permisos de los certificados: …
- TLS · Cluster bus y replicación (ventana de mantenimiento, todos los nodos a la vez) — Fijar el puerto del bus y escribir tls-cluster y tls-replication en el archivo: … · Parar: … · Iniciar: … · ¿Están el cluster y la replicación sobre TLS?
- TLS: verificación y cierre del puerto sin cifrar — ¿Están la replicación… y Sentinel… sobre TLS? · Cerrar el puerto sin cifrar: … · ¿Se rechaza la conexión sin cifrar?: …
- Permisos de archivos y usuario de ejecución — Corregir los permisos: …
- Auditoría final (tras el endurecimiento) — Informe de seguridad: … (estado final) · Informe de Sentinel: … (estado final)
- Limpieza y seguimiento — Borrar los archivos temporales de contraseñas · Seguimiento: monitorización y tareas periódicas