Introduction
Dans ce laboratoire, vous apprendrez comment renforcer la sécurité de votre serveur Redis. Nous aborderons la configuration d'un mot de passe pour empêcher tout accès non autorisé et la désactivation de commandes spécifiques pour limiter les utilisations abusives potentielles. À la fin de ce laboratoire, vous disposerez d'une instance Redis plus sécurisée.
Définir un mot de passe avec CONFIG SET requirepass
Par défaut, Redis ne requiert pas de mot de passe, ce qui le rend vulnérable. La définition d'un mot de passe est la première et la plus importante étape pour sécuriser votre serveur Redis. Nous utiliserons la commande CONFIG SET requirepass pour cela.
La commande CONFIG SET vous permet de modifier dynamiquement les paramètres de configuration de Redis. Le paramètre requirepass spécifie le mot de passe que les clients doivent fournir pour se connecter au serveur.
Commençons :
Connectez-vous au serveur Redis en utilisant
redis-cli:Ouvrez un terminal dans la VM LabEx. Le répertoire par défaut est
~/project. Exécutez la commande suivante :redis-cliCela vous connectera au serveur Redis fonctionnant sur l'hôte par défaut (127.0.0.1) et le port (6379). Vous devriez voir l'invite
127.0.0.1:6379>.127.0.0.1:6379>Définissez le mot de passe en utilisant la commande
CONFIG SET requirepass:Nous allons définir le mot de passe sur
mysecretpassword. Pour les environnements de production, choisissez un mot de passe fort et unique.CONFIG SET requirepass mysecretpasswordVous devriez voir la sortie suivante :
OKCela confirme que le mot de passe a été défini.
Maintenant, quittez
redis-clien tapantexitet en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.exitTentez d'exécuter une commande sans authentification :
Ouvrez un nouveau terminal et connectez-vous au serveur Redis en utilisant
redis-cli:redis-cliEssayez d'exécuter une commande simple comme
PING:PINGVous devriez recevoir un message d'erreur :
(error) NOAUTH Authentication required.Cela indique que l'authentification est maintenant requise.
Quittez
redis-cli:Pour vous assurer que la commande est enregistrée, quittez
redis-clien tapantexitou en appuyant surCtrl+D.exitCeci est important pour que l'étape de vérification fonctionne correctement.
Authentification avec la commande AUTH
Maintenant que nous avons défini un mot de passe, apprenons à nous authentifier auprès du serveur Redis en utilisant la commande AUTH. Cette commande nécessite le mot de passe que vous avez défini à l'étape précédente.
Connectez-vous au serveur Redis en utilisant
redis-cli:Ouvrez un terminal dans la VM LabEx. Le répertoire par défaut est
~/project. Exécutez la commande suivante :redis-cliVous devriez voir l'invite
127.0.0.1:6379>.Authentifiez-vous avec la commande
AUTH:Utilisez la commande
AUTHsuivie du mot de passe que vous avez défini précédemment :AUTH mysecretpasswordSi l'authentification réussit, vous verrez :
OKExécutez une commande après authentification :
Maintenant que vous êtes authentifié, essayez à nouveau la commande
PING:PINGVous devriez recevoir la réponse attendue :
PONGQuittez
redis-cli:Quittez
redis-clien tapantexitou en appuyant surCtrl+D.exit
Limiter les commandes dangereuses
Redis offre de nombreuses commandes, mais certaines peuvent être risquées dans certains environnements. Bien que nous ne puissions pas désactiver dynamiquement les commandes à l'aide de CONFIG SET (car rename-command nécessite un redémarrage du serveur), nous pouvons démontrer le concept de sécurité des commandes en montrant comment fonctionnent les commandes dangereuses comme FLUSHALL et pourquoi elles devraient être restreintes dans les environnements de production.
Connectez-vous au serveur Redis en utilisant
redis-cli:Ouvrez un terminal dans la VM LabEx. Le répertoire par défaut est
~/project. Exécutez la commande suivante :redis-cliVous devriez voir l'invite
127.0.0.1:6379>.Authentifiez-vous avec la commande
AUTH:Authentifiez-vous en utilisant la commande
AUTHsuivie de votre mot de passe :AUTH mysecretpasswordVous devriez voir la sortie
OKaprès une authentification réussie.Créez des données de test pour démontrer le danger de
FLUSHALL:SET testkey "important data" SET anotherkey "more important data"Les deux commandes devraient retourner
OK.Vérifiez l'existence des données :
KEYS *Vous devriez voir les deux clés listées :
1) "testkey" 2) "anotherkey"Démontrez la commande dangereuse
FLUSHALL:Attention : Cette commande supprimera toutes les données de toutes les bases de données !
FLUSHALLVous devriez voir :
OKCette commande supprime avec succès toutes les données de toutes les bases de données.
Vérifiez que toutes les données ont été supprimées :
KEYS *Vous devriez voir :
(empty array)Cela démontre pourquoi
FLUSHALLest considérée comme dangereuse et devrait être désactivée en production en ajoutantrename-command FLUSHALL ""au fichierredis.conf.Quittez
redis-cli:Quittez
redis-clien tapantexitou en appuyant surCtrl+D.exit
Résumé
Dans ce laboratoire, vous avez appris à renforcer la sécurité de Redis. Vous avez défini un mot de passe à l'aide de CONFIG SET requirepass pour empêcher tout accès non autorisé. Vous avez également appris à vous authentifier en utilisant la commande AUTH et avez démontré la nature dangereuse de commandes telles que FLUSHALL qui peuvent supprimer toutes les données. Dans les environnements de production, ces commandes dangereuses devraient être désactivées en ajoutant rename-command FLUSHALL "" au fichier redis.conf et en redémarrant le serveur Redis. Ces étapes sont essentielles pour sécuriser votre serveur Redis.


