Redis est un magasin de valeurs-clés en mémoire populaire qui peut être utilisé comme base de données de valeurs-clés NoSQL, courtier de messages ainsi qu’une solution de mise en cache. Il est réputé pour sa flexibilité, son évolutivité, sa réplication transparente, sa simplicité et sa facilité d’utilisation. Redis est largement utilisé dans divers domaines tels que l’apprentissage automatique, l’analyse en temps réel, le chat, la messagerie et les classements de jeux.
En soi, Redis n’a pas de fonctionnalités robustes, cependant, vous pouvez toujours modifier Redis pour fournir une sécurité supplémentaire et éloigner les utilisateurs non autorisés.
Dans ce tutoriel, nous apprenons à installer et sécuriser Redis au Rocky Linux 8 ou AlmaLinux 8.
Étape 1 : Installez Redis sur Rocky Linux ou AlmaLinux 8
Redis est disponible dans les référentiels AppStream, nous pouvons utiliser le gestionnaire de packages DNF pour l’installer.
Exécutez la commande DNF suivante pour installer Redis :
$ sudo dnf install redis
Une fois installé, nous devons apporter une légère modification à son fichier de configuration pour modifier le fonctionnement de Redis. Accédez au fichier de configuration Redis :
$ sudo vim /etc/redis.conf
Faites défiler et localisez le supervisé directif. Cela vous permet de tirer parti du système d’initialisation afin d’exécuter et de gérer efficacement Redis. Par défaut, il est défini sur non. Étant donné que Rocky / AlmaLinux s’exécute sur le système d’initialisation systemd, définissez la valeur sur système comme indiqué.
Et c’est tout. Alors, enregistrez les modifications et quittez l’éditeur de texte. Par défaut, Redis ne démarre pas automatiquement et, par conséquent, nous devons le démarrer comme suit.
$ sudo systemctl start redis
En outre, activez le démarrage du service à chaque fois que le système est mis sous tension ou redémarré.
$ sudo systemctl enable redis
Pour confirmer que Redis est en cours d’exécution, exécutez la commande :
$ sudo systemctl status redis

Pour tester que Redis a été installé avec succès, envoyez un message ping sur lequel vous obtiendrez ‘PONG‘ en guise de réponse.

Étape 2 : Sécurisez Redis à l’aide d’un mot de passe
La sécurité est une priorité élevée pour tout système de base de données, et Redis ne fait pas exception. Dans cette étape, nous irons encore plus loin et activerons l’authentification pour sécuriser Redis et éloigner les parties non autorisées.
Encore une fois, accédez au fichier de configuration.
$ sudo vim /etc/redis.conf
Localisez le besoin de passer directif. C’est la directive que nous allons configurer pour obliger les clients à s’authentifier avant d’accéder à la base de données.
Décommentez la directive et spécifiez votre propre mot de passe.
requirepass strong_password

Pour appliquer les modifications, redémarrez la base de données Redis.
$ sudo systemctl restart redis
Pour tester si l’authentification a été activée, accédez au client Redis :
$ redis-cli
Essayez maintenant de définir une clé sur une valeur :
$ set keystudent Mike
Cela donne l’erreur indiquée. Cela montre que l’authentification est requise.
(error) NOAUTH Authentication required.

Pour vous authentifier, invoquez le authentifier mot-clé suivi du mot de passe. Redis accusera réception du mot de passe et vous permettra de continuer.

Une fois authentifié, vous pouvez continuer à spécifier vos paires clé-valeur à l’aide de la commande set. Pour récupérer la valeur affectée à la clé, invoquez la commande :
get keystudent

Pour quitter Redis, tapez simplement quit et appuyez sur ENTER.
quit
Étape 3 : Définir la propriété et les autorisations du répertoire de données appropriées
Un autre aspect important à prendre en compte est la propriété et les autorisations que vous devez garder à l’esprit pour garantir la robustesse de votre installation Redis. Cela consiste à s’assurer que seul l’utilisateur qui a besoin d’accéder à Redis a l’autorisation de lire ses données – et cet utilisateur, dans ce cas, est le redis utilisateur.
Vous pouvez commencer par confirmer que le répertoire de données Redis dispose des droits de propriété et des autorisations appropriés.
$ ls -l /var/lib | grep redis

À partir de la sortie, nous pouvons voir que le répertoire de données Redis appartient à l’utilisateur Redis et que l’accès est accordé au groupe Redis. De plus, les autorisations du répertoire sont définies sur une notation octale de 750. Ce sont les paramètres d’autorisation et de propriété de dossier Redis recommandés.
Si le répertoire de données Redis possède des autorisations non sécurisées, par exemple, s’il est lisible par les utilisateurs globaux, vous devez vous assurer que seuls l’utilisateur et le groupe Redis ont accès au dossier et à son contenu.
Pour ce faire, exécutez la commande :
$ sudo chmod 750 /var/lib/redis
De plus, assurez-vous que le fichier de configuration Redis appartient au redis user avec le groupe secondaire de root. Assurez-vous également qu’il dispose des autorisations Octal de 640 comme indiqué.
$ ls -l /etc/redis.conf
La notation octale de 640 garantit que seul le redis et racine l’utilisateur peut lire le fichier de configuration. Ceci est crucial puisque nous avons configuré un mot de passe crypté à l’étape 2 en utilisant le besoin de passer directif. Cela signifie que tout autre utilisateur en dehors de Redis et des utilisateurs root ne pourra pas lire le fichier et accéder au mot de passe.

Pour renforcer davantage la sécurité, assurez-vous que le fichier de configuration appartient à l’utilisateur et au groupe Redis.
$ sudo chown redis:redis /etc/redis.conf
Définissez également les autorisations du fichier de configuration de manière à ce que seul le propriétaire Redis puisse le lire et l’écrire.
$ sudo chmod 600 /etc/redis.conf
Pour appliquer les modifications que nous venons d’apporter, redémarrez le serveur Redis.
$ sudo systemctl restart redis
Étape 4 : Configurer Redis pour l’accès à distance
Parfois, vous devrez peut-être accéder à votre instance Redis à distance à partir d’un autre système. Pour cela, rendez-vous dans le fichier de configuration.
$ sudo vim /etc/redis.conf
Localisez le lier directif. Par défaut, il est configuré pour écouter localhost.
bind 127.0.0.1
Commentez-le et spécifiez l’IP privée du serveur distant.
bind private_ip
Si vous y accédez via l’Internet public, vous pouvez le définir sur 0.0.0.0 pour le lier à des adresses IP publiques.
bind 0.0.0.0
Ensuite, changez protected-mode yes
à protected-mode no
protected-mode no
Redémarrez ensuite le serveur Redis pour appliquer les modifications.
$ sudo systemctl restart redis
L’autre étape restante consiste à configurer le pare-feu pour autoriser l’accès à notre serveur Redis.
Étape 5 : Configuration du pare-feu pour redis
Si Firewalld est actif et en cours d’exécution, envisagez de le configurer pour autoriser le port 6379, qui est le port sur lequel Redis écoute.
$ sudo firewall-cmd --add-port=6379/tcp --permanent
$ sudo firewall-cmd --reload
Parfait! Maintenant, pour tester si nous pouvons accéder à distance à l’instance Redis, utilisez l’option -h suivie de l’adresse IP du serveur Redis
$ redis-cli -h server_IP
Dans ce cas:
$ redis-cli -h 10.128.0.44

Conclusion
Et voilà, nous avons installé et sécurisé avec succès Redis sur Rocky Linux 8 ou AlmaLinux 8. Vos commentaires sur ce guide sont les bienvenus.