Paramètres de sécurité Redis

RedisBeginner
Pratiquer maintenant

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 :

  1. 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-cli

    Cela 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>
  2. 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 mysecretpassword

    Vous devriez voir la sortie suivante :

    OK

    Cela confirme que le mot de passe a été défini.

    Maintenant, quittez redis-cli en tapant exit et en appuyant sur Entrée. Cela garantit que vos commandes sont enregistrées.

    exit
  3. Tentez d'exécuter une commande sans authentification :

    Ouvrez un nouveau terminal et connectez-vous au serveur Redis en utilisant redis-cli :

    redis-cli

    Essayez d'exécuter une commande simple comme PING :

    PING

    Vous devriez recevoir un message d'erreur :

    (error) NOAUTH Authentication required.

    Cela indique que l'authentification est maintenant requise.

  4. Quittez redis-cli :

    Pour vous assurer que la commande est enregistrée, quittez redis-cli en tapant exit ou en appuyant sur Ctrl+D.

    exit

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

  1. 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-cli

    Vous devriez voir l'invite 127.0.0.1:6379>.

  2. Authentifiez-vous avec la commande AUTH :

    Utilisez la commande AUTH suivie du mot de passe que vous avez défini précédemment :

    AUTH mysecretpassword

    Si l'authentification réussit, vous verrez :

    OK
  3. Exécutez une commande après authentification :

    Maintenant que vous êtes authentifié, essayez à nouveau la commande PING :

    PING

    Vous devriez recevoir la réponse attendue :

    PONG
  4. Quittez redis-cli :

    Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+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.

  1. 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-cli

    Vous devriez voir l'invite 127.0.0.1:6379>.

  2. Authentifiez-vous avec la commande AUTH :

    Authentifiez-vous en utilisant la commande AUTH suivie de votre mot de passe :

    AUTH mysecretpassword

    Vous devriez voir la sortie OK après une authentification réussie.

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

  4. Vérifiez l'existence des données :

    KEYS *

    Vous devriez voir les deux clés listées :

    1) "testkey"
    2) "anotherkey"
  5. Démontrez la commande dangereuse FLUSHALL :

    Attention : Cette commande supprimera toutes les données de toutes les bases de données !

    FLUSHALL

    Vous devriez voir :

    OK

    Cette commande supprime avec succès toutes les données de toutes les bases de données.

  6. Vérifiez que toutes les données ont été supprimées :

    KEYS *

    Vous devriez voir :

    (empty array)

    Cela démontre pourquoi FLUSHALL est considérée comme dangereuse et devrait être désactivée en production en ajoutant rename-command FLUSHALL "" au fichier redis.conf.

  7. Quittez redis-cli :

    Quittez redis-cli en tapant exit ou en appuyant sur Ctrl+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.