Configuración de Seguridad de Redis

RedisBeginner
Practicar Ahora

Introducción

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

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 92% por parte de los estudiantes.

Establecer 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. Utilizaremos 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.

Comencemos:

  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 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 fuerte y única.

    CONFIG SET requirepass mysecretpassword

    Debería ver la siguiente salida:

    OK

    Esto confirma que la contraseña ha sido establecida.

    Ahora, salga de redis-cli escribiendo exit y presionando Enter. Esto asegura que sus comandos se registren.

    exit
  3. Intente ejecutar un comando sin autenticación:

    Abra una nueva terminal y conéctese al servidor Redis usando redis-cli:

    redis-cli

    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 asegurar 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.

Autenticarse con el Comando AUTH

Ahora que hemos establecido una contraseña, aprendamos cómo autenticarse 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

Limitar Comandos Peligrosos

Redis ofrece muchos comandos, pero algunos pueden ser arriesgados en ciertos entornos. Si bien no podemos deshabilitar comandos dinámicamente usando CONFIG SET (ya que rename-command requiere un reinicio del servidor), podemos demostrar el concepto de seguridad de comandos mostrando cómo funcionan comandos peligrosos como FLUSHALL y por qué deben restringirse en entornos de producción.

  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:

    Autentíquese usando el comando AUTH seguido de su contraseña:

    AUTH mysecretpassword

    Debería ver la salida OK tras una autenticación exitosa.

  3. Cree algunos datos de prueba para demostrar el peligro de FLUSHALL:

    SET testkey "important data"
    SET anotherkey "more important data"

    Ambos comandos deberían devolver OK.

  4. Verifique que los datos existen:

    KEYS *

    Debería ver ambas claves listadas:

    1) "testkey"
    2) "anotherkey"
  5. Demuestre el peligroso comando FLUSHALL:

    Advertencia: ¡Este comando eliminará todos los datos en todas las bases de datos!

    FLUSHALL

    Debería ver:

    OK

    Este comando elimina con éxito todos los datos de todas las bases de datos.

  6. Verifique que todos los datos han sido eliminados:

    KEYS *

    Debería ver:

    (empty array)

    Esto demuestra por qué FLUSHALL se considera peligroso y debe deshabilitarse en producción agregando rename-command FLUSHALL "" al archivo redis.conf.

  7. Salga de redis-cli:

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

    exit

Resumen

En este laboratorio, ha aprendido a mejorar la seguridad de Redis. Estableció una contraseña usando CONFIG SET requirepass para prevenir el acceso no autorizado. También aprendió a autenticarse usando el comando AUTH y demostró la naturaleza peligrosa de comandos como FLUSHALL que pueden eliminar todos los datos. En entornos de producción, comandos peligrosos como este deben deshabilitarse agregando rename-command FLUSHALL "" al archivo redis.conf y reiniciando el servidor Redis. Estos pasos son esenciales para asegurar su servidor Redis.