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.
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:
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-cliEsto 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>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 mysecretpasswordDebería ver la siguiente salida:
OKEsto confirma que la contraseña ha sido establecida.
Ahora, salga de
redis-cliescribiendoexity presionando Enter. Esto asegura que sus comandos se registren.exitIntente ejecutar un comando sin autenticación:
Abra una nueva terminal y conéctese al servidor Redis usando
redis-cli:redis-cliIntente ejecutar un comando simple como
PING:PINGDebería recibir un mensaje de error:
(error) NOAUTH Authentication required.Esto indica que ahora se requiere autenticación.
Salga de
redis-cli:Para asegurar que el comando se registre, salga de
redis-cliescribiendoexito presionandoCtrl+D.exitEsto 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.
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-cliDebería ver el prompt
127.0.0.1:6379>.Autentíquese con el comando
AUTH:Use el comando
AUTHseguido de la contraseña que estableció anteriormente:AUTH mysecretpasswordSi la autenticación es exitosa, verá:
OKEjecute un comando después de la autenticación:
Ahora que está autenticado, intente el comando
PINGnuevamente:PINGDebería recibir la respuesta esperada:
PONGSalga de
redis-cli:Salga de
redis-cliescribiendoexito presionandoCtrl+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.
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-cliDebería ver el prompt
127.0.0.1:6379>.Autentíquese con el comando
AUTH:Autentíquese usando el comando
AUTHseguido de su contraseña:AUTH mysecretpasswordDebería ver la salida
OKtras una autenticación exitosa.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.Verifique que los datos existen:
KEYS *Debería ver ambas claves listadas:
1) "testkey" 2) "anotherkey"Demuestre el peligroso comando
FLUSHALL:Advertencia: ¡Este comando eliminará todos los datos en todas las bases de datos!
FLUSHALLDebería ver:
OKEste comando elimina con éxito todos los datos de todas las bases de datos.
Verifique que todos los datos han sido eliminados:
KEYS *Debería ver:
(empty array)Esto demuestra por qué
FLUSHALLse considera peligroso y debe deshabilitarse en producción agregandorename-command FLUSHALL ""al archivoredis.conf.Salga de
redis-cli:Salga de
redis-cliescribiendoexito presionandoCtrl+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.


