Comment installer et sécuriser Redis sur Ubuntu 18.04 LTS

Redis est un magasin clé/valeur en mémoire open-source, utilisé comme base de données, cache et courtier de messages. C’est une base de données clé/valeur en mémoire distribuée avec une durabilité optionnelle. Elle prend en charge les structures de données courantes telles que les chaînes, les hachages, les listes, les ensembles, les bitmaps, les ensembles triés, les HyperlogLogs, les flux et les index géospatiaux avec des requêtes de rayon.

Dans ce tutoriel, nous allons te montrer comment installer et configurer le serveur Redis sur Ubuntu 18.04 LTS. Nous commencerons par installer le serveur Redis, puis nous sécuriserons l’installation pour qu’elle soit prête pour la production.

Prérequis

Pour ce guide, nous installerons le serveur Redis sur Ubuntu 18.04 avec 1 Go de RAM et 2 cœurs PCU. Ceci est uniquement pour le test, et tu auras besoin de plus que cela pour ta production.

Ce que nous allons faire :

  • Installer le serveur Redis
  • Configuration de base du serveur Redis
  • Sécuriser le serveur Redis
  • Tester

Étape 1 – Installer le serveur Redis

Tout d’abord, nous allons mettre à jour tous les dépôts sur le système Ubuntu et mettre à niveau tous les paquets.

Exécute les commandes apt ci-dessous.

sudo apt update
sudo apt upgrade

Ensuite, installe le paquet Redis-server depuis le dépôt officiel d’Ubuntu en utilisant la commande apt ci-dessous.

sudo apt install redis-server

Une fois l’installation terminée, tu recevras un message d’erreur indiquant que le service Redis n’a pas réussi à démarrer. Ignore ce message d’erreur et nous allons procéder à la configuration à l’étape suivante.

Étape 2 – Configuration de base du serveur Redis

Dans cette étape, nous allons configurer le serveur Redis de base. Sur le système Linux, la configuration de Redis se trouve dans le répertoire ‘/etc/redis’.

Va dans le répertoire ‘/etc/redis’ et modifie le fichier de configuration ‘redis.conf’ à l’aide de l’éditeur vim.

cd /etc/redis/
vim redis.conf

Tout d’abord, nous devons décider de l’adresse IP ‘bind’ qui exécutera le service redis. Il n’est pas recommandé d’utiliser l’adresse IP publique pour le service redis, ou si tu exécutes le service redis multiple/cluster, tu dois utiliser le réseau interne.

Change l’adresse ‘bind’ par l’adresse IP de localhost pour cet exemple.

bind 127.0.0.1

Après cela, nous devons configurer la façon dont le service redis fonctionnera sur le serveur. Comme nous utilisons le serveur Ubuntu et systemd, nous devons changer la configuration de la ligne ‘supervised’ en ‘systemd’.

supervised systemd

Sauvegarde et ferme.

Maintenant, redémarre le service redis et ajoute-le au temps de démarrage.

systemctl restart redis-server
systemctl enable redis-server

Active le service Redis

Assure-toi maintenant qu’il n’y a pas d’erreur et vérifie son état.

systemctl status redis-server

Démarre le serveur Redis

Comme résultat, le service redis est en place et fonctionne sur le serveur Ubuntu 18.04.

Vérifie maintenant le port Redis par défaut ‘6379’ en utilisant la commande netstat ci-dessous.

netstat -plntu

Tu obtiendras le résultat suivant : le service redis fonctionne sur l’adresse IP localhost avec le port par défaut ‘6379’.

Vérifie maintenant Redis à l’aide de la commande ‘redis-cli’ ci-dessous.

redis-cli ping
redis-cli ping "Hello Redis"

Et tu obtiendras le résultat ci-dessous.

Ping le serveur Redis pour le tester

Si ton installation est correcte, le serveur Redis répondra par ‘PONG’ ou par le texte que tu viens de saisir après l’option ‘ping’.

L’installation et la configuration de base du serveur Redis ont été effectuées avec succès.

Étape 3 – Sécuriser l’installation de Redis

Dans cette étape, nous allons sécuriser notre installation Redis. Il y a 3 choses que tu dois savoir pour sécuriser le serveur Redis.

1. Sécurité du réseau

La sécurité du réseau pour le serveur Redis est liée à la configuration ‘bind’ dans la configuration de Redis ‘redis.conf’. Il est recommandé d’utiliser le réseau privé interne pour ton installation de Redis et de ne pas utiliser le réseau public.

Va dans le répertoire ‘/etc/redis’ et modifie le fichier de configuration ‘redis.conf’.

cd /etc/redis/
vim redis.conf

Dans la section ‘bind’, remplace l’adresse IP par celle de ton propre réseau interne.

bind INTERNAL-IP-ADDRESS

Sauvegarde et ferme.

Maintenant, le service Redis fonctionnera sous ‘INTERNAL-IP-ADDRESS’.

2. Authentification par mot de passe

L’authentification par mot de passe pour Redis te permettra de contrôler l’accès à ton serveur Redis. C’est une petite couche de sécurité qui renforcera la sécurité de ton serveur Redis, et elle n’est pas encore activée par l’installation par défaut.

Pour activer l’authentification par mot de passe pour le serveur Rediser, tu devras décommenter la section ‘requirepass’ du fichier ‘redis.conf’ et taper ton mot de passe fort après celle-ci.

requirepass [email protected]#$

Remplace lemot ‘[email protected]#$‘ par ton mot de passe fort. Et maintenant, l’authentification par mot de passe pour Redis a été activée.

3. Désactiver les commandes dangereuses de Redis

Redis propose une fonction permettant de désactiver certaines commandes Redis spécifiques. Cette fonction peut être utilisée pour renommer ou désactiver certaines commandes dangereuses telles que ‘FLUSHALL’ pour effacer toutes les données, la commande ‘CONFIG’ pour définir les paramètres de configuration via la CLI de Redis, etc.

Pour modifier ou désactiver la commande Redis, tu peux utiliser l’option ‘rename-command’. Modifie le fichier de configuration de Redis ‘redis.conf’ et ajoute les configurations ci-dessous.

# rename-command COMMAND "CUSTOM"
rename-command FLUSHALL "DELITALL"
rename-command CONFIG "MYSERVERCONF"

Sauvegarde et ferme.

Une fois que tout est terminé, redémarre le service Redis à l’aide de la commande systemctl ci-dessous.

systemctl restart redis-server

Et la sécurité de base de Redis pour sécuriser l’installation de Redis a été appliquée à notre hôte.

Edit Redis configuration

En outre, tu auras peut-être besoin de la prise en charge du « chiffrement des données » pour Redis, ainsi que du codage sécurisé nécessaire du côté de l’application.

Étape 4 – Test

Dans cette étape, nous allons tester le déploiement de notre serveur Redis à l’aide de la ligne de commande ‘redis-cli’.

1. Test de l’hôte et de l’authentification

Connecte-toi au serveur Redis à l’aide de la commande redis-cli en spécifiant le nom d’hôte/adresse IP et le port du serveur Redis.

redis-cli -h 10.5.5.25 -p 6379

Remplace l’adresse‘10.5.5.25‘ par ta propre adresse IP.

Une fois que tu es connecté au serveur, essaie la commande ping.

ping
ping "Hello Redis"

Tu obtiendras le résultat ci-dessous.

Tester Redis

Tu obtiens l’erreur ann car tu dois t’authentifier avant d’invoquer une commande sur le shell CLI de Redis.

Exécute la commande suivante pour t’authentifier auprès du serveur Redis.

AUTH [email protected]#$

Une fois que tu es authentifié, tu peux essayer la commande ping et tu obtiendras une réponse du serveur Redis.

ping
ping "Hello Redis"

Tu trouveras ci-dessous le résultat après t’être authentifié auprès du serveur Redis.

Réponse de Redis

2. Test des commandes désactivées/renommées

Exécute toutes les commandes que nous avons renommées sur le shell et tu obtiendras l’erreur de commande.

FLUSHALL
CONFIG

Tu trouveras ci-dessous le résultat de l’erreur de ces commandes.

Test de la commande renommée

Ensuite, exécute les commandes ‘CUSTOM’ pour chacune d’entre elles.

Crée une nouvelle clé en utilisant la commande redis-cli comme ci-dessous.

SET Name "Hakase Labs"
SET Blog "Howtoforge.com"

Keys *

Supprime maintenant toutes les clés et les données en utilisant la commande ‘DELITALL’ renommée ‘FLUSHALL’.

DELITALL

Pour la commande ‘CONFIG’, tu peux essayer de récupérer ou de définir une nouvelle valeur de la configuration du serveur Redis. La commande ‘CONFIG’ a été renommée en ‘MYSERVERCONF’.

MYSERVERCONF get bind
MYSERVERCONF get requirepass

Et voici le résultat de cette nouvelle commande personnalisée renommée.

Get Redis config

L’installation de base de Redis Server sur Ubuntu 18.04 est terminée, et la sécurité de base pour Redis Server a été appliquée.

Référence

Vous aimerez aussi...