Manager, Developer Education
Redis est une base de données de valeurs-clés en mémoire renommée pour sa flexibilité, ses performances et son vaste support linguistique. Ce didacticiel de démarrage rapide est conçu pour vous apprendre à installer, configurer et sécuriser Redis sur un serveur Ubuntu 20.04.
Pour suivre ces instructions, vous aurez besoin d’accéder à un serveur Ubuntu 20.04 doté d’un non-root user avec des privilèges sudo
et un pare-feu configuré avec ufw
. Vous pouvez configurer ceci en suivant notre Guide de configuration initiale du serveur pour Ubuntu 20.04.
Commencez par mettre à jour votre cache local de package apt
:
- sudo apt update
Installez ensuite Redis en saisissant ce qui suit :
- sudo apt install redis-server
Ensuite, ouvrez le fichier de configuration Redis avec votre éditeur de texte favori :
- sudo nano /etc/redis/redis.conf
Dans le fichier, recherchez la directive supervised
qui vous permet de déclarer un système init qui gérera Redis en tant que tant Étant donné que vous exécutez Ubuntu, qui utilise le système init systemd, remplacez sa valeur no
par systemd
:
. . .
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd
. . .
Enregistrez et fermez le fichier lorsque vous avez terminé. Si vous avez modifié le fichier avec nano
, faites-le en appuyant sur CTRL + X
, Y
, puis sur ENTER
.
Ensuite, redémarrez le service Redis pour valider les modifications que vous avez apportées au fichier de configuration :
- sudo systemctl restart redis.service
Pour vérifier si Redis fonctionne correctement, connectez-vous au serveur à l’aide de redis-cli
, le client de la ligne de commande de Redis :
- redis-cli
Dans l’invite qui suit, testez la connectivité avec la commande ping
:
- ping
OutputPONG
Ce résultat confirme que la connexion au serveur est active. Ensuite, vérifiez que vous pouvez configurer des clés en exécutant les commandes suivantes :
- set test "It's working!"
OutputOK
Récupérez la valeur en saisissant :
- get test
En supposant que tout fonctionne correctement, vous pourrez récupérer la valeur que vous avez sauvegardée :
Output"It's working!"
Après avoir confirmé que la valeur est récupérable, quittez l’invite Redis pour revenir au shell :
- exit
Vous pouvez configurer un mot de passe Redis directement dans le fichier de configuration de Redis, /etc/redis/redis.conf
. Ouvrez à nouveau ce fichier avec votre éditeur favori :
- sudo nano /etc/redis/redis.conf
Faites défiler l’écran jusqu’à la section SECURITY
et recherchez une directive commentée indiquant ce qui suit :
. . .
# requirepass foobared
. . .
Décommentez-la en supprimant le #
et remplacez foobared
par un mot de passe sécurisé :
. . .
requirepass your_redis_password
. . .
Une fois le mot de passe configuré, enregistrez et fermez le fichier, puis redémarrez Redis :
- sudo systemctl restart redis.service
Pour vérifier si le mot de passe fonctionne, ouvrez le client Redis :
- redis-cli
Ci-après vous voyez une séquence de commandes qui permet de tester le bon fonctionnement du mot de passe Redis. La première commande essaie de définir une clé sur une valeur avant l’authentification :
- set key1 10
Cela ne fonctionnera pas si vous ne procédez pas à l’authentification. Redis renverra alors une erreur :
Output(error) NOAUTH Authentication required.
La commande suivante procède à l’authentification avec le mot de passe spécifié dans le fichier de configuration Redis :
- auth your_redis_password
Redis valide :
OutputOK
Après cela, la ré-exécution de la commande précédente sera probante :
- set key1 10
OutputOK
get key1
interroge Redis pour obtenir la valeur de la nouvelle clé.
- get key1
Output"10"
Après avoir confirmé que vous êtes en mesure d’exécuter des commandes dans le client Redis suite à l’authentification, vous pouvez quitter redis-cli
:
- quit
Redis intègre une autre fonctionnalité de sécurité qui consiste à renommer ou à désactiver complètement certaines commandes considérées comme dangereuses. Voici certaines des commandes considérées comme dangereuses : FLUSHDB
, FLUSHALL
, KEYS
, PEXPIRE
, DEL
, CONFIG
, SHUTDOWN
, BGREWRITEAOF
, BGSAVE
, SAVE
, SPOP
, SREM
, RENAME
et DEBUG
. En désactivant ou en renommant ces commandes ainsi que d’autres, vous rendez toute reconfiguration, destruction ou suppression de vos données plus difficile aux utilisateurs non autorisés.
Pour renommer ou désactiver les commandes Redis, rouvrez le fichier de configuration :
- sudo nano /etc/redis/redis.conf
Attention : les étapes suivantes qui vous montrent de quelle manière désactiver et renommer des commandes sont données à titre d’exemple. Vous devez décider de désactiver ou de renommer uniquement les commandes qui ont du sens pour vous. Vous pouvez consulter la liste complète des commandes par vous-même et déterminer de quelle manière elles peuvent être utilisées à mauvais escient sur redis.io/commands.
Pour désactiver une commande, renommez-la simplement dans une chaîne de caractères vide (indiquée par une paire de guillemets sans aucun caractère entre eux), comme illustré ci-dessous :
. . .
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
. . .
Pour renommer une commande, donnez-lui un autre nom comme indiqué dans les exemples ci-dessous. Les commandes renommées doivent être difficiles à deviner pour les autres, mais faciles à retenir pour vous :
. . .
# rename-command CONFIG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG
. . .
Sauvegardez vos modifications et fermez le fichier.
Après avoir renommé une commande, appliquez la modification en redémarrant Redis :
- sudo systemctl restart redis.service
Pour tester la nouvelle commande, saisissez la ligne de commande Redis :
- redis-cli
Puis procédez à l’authentification :
- auth your_redis_password
OutputOK
En supposant que vous avez renommé la commande CONFIG
avec ASC12_CONFIG
comme dans l’exemple précédent, essayez d’utiliser la commande d’origine CONFIG
. L’opération devrait échouer, car vous l’avez renommée :
- config get requirepass
Output(error) ERR unknown command `config`, with args beginning with:
Toutefois, en saisissant la commande renommée, cela devrait fonctionner. Elle n’est pas sensible à la casse :
- asc12_config get requirepass
Output1) "requirepass"
2) "your_redis_password"
Au cours de ce didacticiel de démarrage rapide, vous avez installé et configuré Redis, vérifié que votre installation Redis fonctionne correctement et utilisé ses fonctions de sécurité intégrées pour le rendre moins vulnérable aux attaques d’utilisateurs malveillants.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!