Configuración de Seguridad de Redis

RedisRedisBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo mejorar la seguridad de su servidor Redis. Cubriremos la configuración de una contraseña para evitar el acceso no autorizado y la desactivación de comandos específicos para limitar el posible uso indebido. Al final de este laboratorio, tendrá una instancia de Redis más segura.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552103{{"Configuración de Seguridad de Redis"}} end

Estableciendo una Contraseña con CONFIG SET requirepass

Por defecto, Redis no requiere una contraseña, lo que lo hace vulnerable. Establecer una contraseña es el primer y más importante paso para asegurar su servidor Redis. Usaremos el comando CONFIG SET requirepass para hacer esto.

El comando CONFIG SET le permite cambiar dinámicamente la configuración de Redis. La configuración requirepass especifica la contraseña que los clientes deben proporcionar para conectarse al servidor.

Empecemos:

  1. Conéctese al servidor Redis usando redis-cli:

    Abra una terminal en la VM de LabEx. El directorio predeterminado es ~/project. Ejecute el siguiente comando:

    redis-cli

    Esto lo conectará al servidor Redis que se ejecuta en el host predeterminado (127.0.0.1) y el puerto (6379). Debería ver el prompt 127.0.0.1:6379>.

    127.0.0.1:6379>
  2. Establezca la contraseña usando el comando CONFIG SET requirepass:

    Estableceremos la contraseña a mysecretpassword. Para entornos de producción, elija una contraseña segura y única.

    CONFIG SET requirepass mysecretpassword

    Debería ver la siguiente salida:

    OK

    Esto confirma que la contraseña ha sido establecida.

  3. Intente ejecutar un comando sin autenticación:

    Intente ejecutar un comando simple como PING:

    PING

    Debería recibir un mensaje de error:

    (error) NOAUTH Authentication required.

    Esto indica que ahora se requiere autenticación.

  4. Salga de redis-cli:

    Para asegurarse de que el comando se registre, salga de redis-cli escribiendo exit o presionando Ctrl+D.

    exit

    Esto es importante para que el paso de verificación funcione correctamente.

Autenticando con el Comando AUTH

Ahora que hemos establecido una contraseña, aprendamos cómo autenticarnos con el servidor Redis usando el comando AUTH. Este comando requiere la contraseña que estableció en el paso anterior.

  1. Conéctese al servidor Redis usando redis-cli:

    Abra una terminal en la VM de LabEx. El directorio predeterminado es ~/project. Ejecute el siguiente comando:

    redis-cli

    Debería ver el prompt 127.0.0.1:6379>.

  2. Autentíquese con el comando AUTH:

    Use el comando AUTH seguido de la contraseña que estableció anteriormente:

    AUTH mysecretpassword

    Si la autenticación es exitosa, verá:

    OK
  3. Ejecute un comando después de la autenticación:

    Ahora que está autenticado, intente el comando PING nuevamente:

    PING

    Debería recibir la respuesta esperada:

    PONG
  4. Salga de redis-cli:

    Salga de redis-cli escribiendo exit o presionando Ctrl+D.

    exit

Deshabilitar Comandos con CONFIG SET

Redis ofrece muchos comandos, pero algunos podrían ser riesgosos en ciertos entornos. Deshabilitar estos comandos puede mejorar la seguridad. Usaremos CONFIG SET disable-command para deshabilitar el comando FLUSHALL como ejemplo. FLUSHALL elimina todos los datos en todas las bases de datos, por lo que deshabilitarlo puede prevenir pérdidas de datos accidentales.

  1. Conéctate al servidor Redis usando redis-cli:

    Abre una terminal en la VM de LabEx. El directorio predeterminado es ~/project. Ejecuta el siguiente comando:

    redis-cli

    Deberías ver el prompt 127.0.0.1:6379>.

  2. Autentícate con el comando AUTH:

    Autentícate usando el comando AUTH seguido de tu contraseña:

    AUTH mysecretpassword

    Deberías ver la salida OK si la autenticación es exitosa.

  3. Deshabilita el comando FLUSHALL usando CONFIG SET disable-command:

    CONFIG SET disable-command FLUSHALL

    Deberías ver:

    OK

    Esto confirma que el comando ha sido deshabilitado.

  4. Intenta ejecutar el comando FLUSHALL:

    FLUSHALL

    Ahora deberías recibir un mensaje de error:

    (error) ERR unknown command 'FLUSHALL', just try HELP

    Esto indica que el comando FLUSHALL ya no está disponible.

  5. Sal del redis-cli:

    Sal del redis-cli escribiendo exit o presionando Ctrl+D.

    exit

Resumen

En este laboratorio, ha aprendido cómo mejorar la seguridad de Redis. Estableció una contraseña usando CONFIG SET requirepass para evitar el acceso no autorizado. También aprendió cómo autenticarse usando el comando AUTH y a deshabilitar comandos específicos como FLUSHALL usando CONFIG SET disable-command para restringir operaciones potencialmente dañinas. Estos pasos son esenciales para asegurar su servidor Redis.