Redis est bénéfique pour de nombreuses choses, dont le caching. Vous pouvez également utiliser Redis comme un magasin de données principal ou même en remplacement d’une base de données. Mais comment effectuer une installation sécurisée de Redis ? Installer Redis peut être compliqué, et si vous n’êtes pas prudent, vous pourriez vous retrouver avec de nombreuses erreurs. Heureusement pour vous, ce tutoriel a tout prévu.
Dans ce tutoriel, vous apprendrez comment installer Redis de manière sécurisée sur votre système Linux, avec quelques conseils pour éviter les erreurs courantes.
Lisez la suite et épargnez-vous les maux de tête liés à la résolution des erreurs d’installation de Redis !
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir ce qui suit :
- Une machine Ubuntu 20.04 LTS – Ce tutoriel utilise Ubuntu 20.04 LTS, mais les instructions sont similaires pour la plupart des distributions Linux.
- Privilèges Root ou un utilisateur non-root avec des
privilèges sudo
Installation de Redis avec le Gestionnaire de Paquets APT
Il existe plusieurs façons d’installer Redis sur Ubuntu, mais pour ce tutoriel, vous utiliserez le gestionnaire de paquets APT pour installer Redis.
Redis est écrit en C, vous devrez donc compiler Redis à partir de son code source manuellement. Plusieurs dépendances devront être installées, et le processus de compilation n’est pas totalement infaillible.
Compiler Redis à partir de la source n’est pas recommandé, mais l’avantage est que vous pouvez personnaliser votre installation si vous le souhaitez. Vous téléchargez le code source, puis le configurez manuellement.
Ouvrez votre terminal et exécutez la commande apt update
ci-dessous pour vous assurer d’avoir les dernières listes de paquets.

Maintenant, exécutez la commande apt install
ci-dessous pour installer Redis sur votre machine.
La commande ci-dessous utilise le gestionnaire de paquets apt
pour télécharger et installer le paquet redis-server
depuis les dépôts Ubuntu sur votre machine. Le drapeau -y
indique à apt
d’accepter automatiquement les invites pendant le processus d’installation.

Configuration du fichier Redis.conf pour exécuter Redis en tant que service
Vous venez d’installer Redis, mais il n’est pas encore prêt à être utilisé. Avant de pouvoir commencer à utiliser Redis, vous devrez d’abord configurer le fichier redis.conf.
Le fichier de configuration redis.conf est inclus dans le package Redis que vous avez installé et est stocké dans le répertoire /etc/redis/ par défaut. Ce fichier contient toutes les options de configuration pour Redis.
L’extension de fichier .conf est logique, car elle suit un modèle conventionnel. De nombreux autres programmes utilisent ce même style. Le serveur web Apache, par exemple, utilise l’extension de fichier .conf pour son fichier de configuration principal.
1. Exécutez la commande systemctl
suivante pour stopper
le service redis-server
. Arrêter le service Redis est une pratique recommandée lorsque vous commencez à utiliser Redis.
2. Ensuite, ouvrez le fichier /etc/redis/redis.conf dans votre éditeur de texte préféré.
Trouvez la directive supervised, puis définissez-la sur systemd, comme indiqué ci-dessous, et enregistrez les modifications. Cela indique au système d’exploitation d’exécuter Redis en tant que service.

3. Maintenant, exécutez la commande systemctl restart
ci-dessous pour redémarrer le service Redis (redis.service
) car le service Redis n’est pas encore au courant des modifications.
4. Enfin, exécutez la commande systemctl status
ci-dessous pour voir si Redis est en cours d’exécution.
Comme vous pouvez le voir ci-dessous, la sortie montre que le service Redis est en cours d’exécution.

Testez si le serveur Redis fonctionne correctement
Vous avez configuré et vérifié que le service Redis fonctionne activement, mais cela ne signifie pas que le serveur Redis fonctionne. Comment tester si le serveur Redis fonctionne correctement? Connectez-vous au serveur Redis et envoyez des commandes pour voir si le serveur répond.
1. Exécutez la commande redis-cli
ci-dessous pour vous connecter au serveur Redis. redis-cli
est l’interface en ligne de commande pour Redis, qui vous permet d’envoyer des commandes au serveur et d’inspecter son état.
Vous pouvez voir ci-dessous que vous êtes dans l’invite du serveur Redis (127.0.0.1:6379>). La commande redis-cli
essaie de se connecter à un serveur Redis à 127.0.0.1:6379
par défaut.

2. Ensuite, exécutez la commande ping
ci-dessous pour vérifier si le serveur Redis est accessible.
Comme vous pouvez le voir, le serveur a renvoyé PONG, ce qui indique que le serveur Redis est accessible et peut désormais communiquer avec le service avec succès.

Peut-être êtes-vous encore sceptique ; exécutez la commande set
ci-dessous. La commande set
est une commande Redis qui définit une paire clé-valeur dans une base de données.
Comme vous pouvez le voir, la commande set renvoie » OK « , ce qui indique que le service Redis fonctionne correctement.

3. Exécutez la commande exit
ci-dessous pour quitter le redis-cli
. Cela ferme la connexion au serveur Redis.
Liaison du serveur Redis à Localhost
Vous venez de tester que le serveur Redis fonctionne correctement, mais il pourrait être accessible à partir d’autres appareils de votre réseau aussi. Ce comportement est indésirable, et vous voudriez généralement protéger votre serveur Redis des étrangers.
En liant le serveur Redis à localhost, vous définissez un comportement selon lequel seule la machine sur laquelle vous avez installé Redis peut accéder au serveur Redis.
1. Ouvrez le fichier /etc/redis/redis.conf dans votre éditeur de texte.
2. Localisez la ligne qui dit bind 127.0.0.1 ::1
et décommentez la ligne en supprimant le signe dièse (#
) au début de la ligne.

3. Maintenant, exécutez la commande ci-dessous pour redémarrer le service redis-server
.
4. Enfin, exécutez la commande suivante pour vérifier si votre serveur Redis est lié à localhost. La commande netstat -lnp
répertorie toutes les connexions réseau actives, et la partie grep redis
filtre la sortie pour les lignes contenant » redis
« .
-lnp
signifie Protocole de Nom Local, un protocole de réseau utilisé par les systèmes de type UNIX pour résoudre les noms d’hôtes en adresses IP.
Vous pouvez voir ci-dessous que le serveur Redis écoute désormais uniquement sur l’interface localhost (127.0.0.1:6379
). En reflétant le changement dans le fichier de configuration, vous pouvez voir que seule l’interface localhost est répertoriée sous vos connexions Internet actives (tcp
).
Maintenant, aucun autre appareil sur votre réseau ne peut se connecter à votre serveur Redis.

Sécuriser la connexion au serveur Redis avec un mot de passe
À ce stade, Redis n’est pas configuré pour exiger des utilisateurs qu’ils s’authentifient avec un mot de passe. Quiconque connaît l’adresse IP ou le nom d’hôte de votre serveur Redis pourrait s’y connecter et modifier ses données.
Comment protéger votre serveur Redis ? Définissez un mot de passe pour exiger une authentification des utilisateurs lors de la connexion à votre serveur Redis.
1. Réouvrez le fichier de configuration redis.conf dans votre éditeur de texte/code.
2. Ensuite, définissez un mot de passe fort avec les étapes suivantes :
- Recherchez
requirepass foobared
sous la sectionSECURITY
- Supprimez le signe dièse (
#
) au début de la ligne - Remplacez
foobared
par un mot de passe fort de votre choix et enregistrez les modifications

3. Exécutez les commandes suivantes pour redémarrer et vous connecter à votre serveur Redis.
4. Maintenant, exécutez la commande ping
pour voir si vous obtiendrez une réponse du serveur.
Ci-dessous, vous pouvez voir un message d’erreur qui dit NOAUTH Authentification requise. Ce message indique que vous avez besoin d’un mot de passe d’authentification pour accéder à votre serveur Redis à distance.

5. Exécutez la commande auth
suivie de votre mot de passe pour authentifier votre connexion à votre serveur Redis.
Vous obtiendrez une réponse OK lorsque l’authentification réussit, comme celle ci-dessous.

6. Enfin, relancez la commande ping
pour tester si vous avez bien authentifié votre connexion à votre serveur Redis.
Vous obtiendrez maintenant la réponse PONG, comme indiqué ci-dessous, après avoir authentifié votre connexion. À ce stade, vous avez maintenant protégé avec succès votre serveur Redis avec un mot de passe.

Désactiver les commandes dangereuses pour protéger votre serveur Redis
Définir un mot de passe pour authentifier la connexion à votre serveur Redis ne signifie pas une protection à 100%. Par défaut, Redis inclut plusieurs commandes dangereuses qui permettent aux utilisateurs de modifier les données de votre base de données.
Lorsqu’elles sont exécutées par des utilisateurs non autorisés, ces commandes permettent aux intrus de lire, modifier, détruire, voire éliminer les données de votre base de données Redis.
La liste ci-dessous n’est pas exhaustive, car votre serveur Redis peut avoir des commandes dangereuses supplémentaires, mais dans la plupart des cas, voici les commandes dangereuses :
Pour sécuriser davantage votre serveur Redis, renommez ces commandes dangereuses dans le fichier redis.conf :
1. Ouvrez le fichier redis.conf dans votre éditeur de texte et recherchez la section Renommage des commandes.
Renommez les commandes en une chaîne vide pour les désactiver en suivant la syntaxe ci-dessous. Remplacez the-command
par la commande réelle à désactiver.
Par exemple, désactivez la commande CONFIG
en renommant CONFIG
en une chaîne vide, comme indiqué ci-dessous, puis enregistrez les modifications. Les guillemets doubles (“”) indiquent une chaîne vide qui signifie la désactivation d’une commande.

CONFIG
command 2. Quittez l’éditeur de texte et exécutez la commande ci-dessous pour redémarrer le serveur Redis.
3. Exécutez maintenant les commandes suivantes pour vous connecter à votre serveur Redis.
4. Enfin, exécutez la commande config get
pour tester que la commande CONFIG
est désactivée.
Vous obtiendrez une réponse ERR unknown command config
, comme indiqué ci-dessous, ce qui indique que la commande CONFIG
est désactivée.

CONFIG
command Si la commande config get requirepass
est exécutée, elle demande le mot de passe de votre serveur Redis pour authentifier la connexion à votre serveur Redis.
Vous avez maintenant renommé avec succès une commande Redis dangereuse pour protéger votre serveur Redis. Continuez à désactiver d’autres commandes dangereuses dans le fichier redis.conf.
Blocage des demandes de connexion au serveur Redis avec un pare-feu
Une autre façon de sécuriser votre serveur Redis est de configurer un pare-feu. La configuration d’un pare-feu vous oblige à autoriser uniquement le port requis pour chacun des services s’exécutant sur votre serveur.
Par exemple, si vous exécutez Redis sur votre serveur sur le port 6379
, alors c’est ce port que vous devez ouvrir. Si vous devez autoriser l’accès à partir d’une adresse IP spécifique ou d’une plage d’adresses, vous pouvez ajouter ces adresses aux règles du pare-feu.
Pour configurer un pare-feu, vous installerez d’abord un outil de configuration de pare-feu. Cet exemple utilise UFW, un outil de configuration de pare-feu couramment utilisé sous Linux. Mais vous pouvez également utiliser un autre outil, tel que iptables, pour configurer un pare-feu.
1. Exécutez la commande suivante pour installer UFW sur votre machine.
2. Ensuite, exécutez la commande ci-dessous pour activer UFW.
Entrez ‘Y’ lorsque vous obtenez l’invite affichée ci-dessous pour continuer à exécuter la commande.

3. Exécutez la commande ufw
ci-dessous pour ajouter une règle, qui permet (allow
) le trafic sur le port 6379
pour votre serveur Redis. Remplacez l’adresse IP 11.22.33.44
par les adresses IP de vos utilisateurs prévus.

6379
4. Enfin, exécutez la commande ci-dessous pour vérifier que vous avez ajouté la règle de pare-feu avec succès. La commande vérifie le statut
de votre pare-feu.
Vous pouvez voir dans la sortie ci-dessous que le pare-feu est actif et a la règle permettant le trafic sur le port 6379
pour Redis à partir de l’adresse IP 11.22.33.44
.

Maintenant, tous les utilisateurs avec l’adresse IP 11.22.33.44
peuvent se connecter à Redis via le port 6379
et devront s’authentifier avec un mot de passe. Vous pouvez ajouter des ports supplémentaires pour d’autres services de manière similaire.
Conclusion
Tout au long de ce tutoriel, vous avez appris comment installer et sécuriser votre serveur Redis en renommant les commandes dangereuses en chaînes vides et en configurant un pare-feu.
Avec cette nouvelle connaissance, vous pouvez profiter pleinement des avantages de Redis sans vous soucier d’exposer votre serveur à des risques inutiles.
Envie d’en savoir plus? Pourquoi ne pas commencer par sécuriser un serveur Redis dans Kubernetes?