GNU/Linux >> Tutoriels Linux >  >> Debian

Installer et sécuriser le serveur Redis sur Debian 10

Redis, également connu sous le nom de "Remote Dictionary Server", est une base de données open source et en mémoire qui peut être utilisée comme base de données, cache et courtier de messages. Redis prend en charge diverses structures de données, telles que les chaînes, les hachages, les listes, les ensembles et bien d'autres. Redis est écrit en langage de programmation C et fonctionne dans la plupart des systèmes POSIX comme Linux, Free BSD et OS X. Redis est capable d'exécuter des milliers de commandes par seconde. Redis est livré avec un riche ensemble de fonctionnalités, notamment la réplication, le basculement automatique, les scripts Lua, l'éviction LRU des clés, les transactions et bien d'autres.

Dans ce tutoriel, nous apprendrons comment installer et sécuriser Redis sur le serveur Debian 10.

Exigences

  • Un serveur exécutant Debian 10.
  • Un mot de passe root est configuré sur votre serveur.

Mise en route

Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois votre serveur mis à jour, redémarrez votre serveur pour appliquer les modifications.

Installer Redis

Par défaut, Redis est disponible dans le référentiel Debian 10. Vous pouvez l'installer en exécutant simplement la commande suivante :

apt-get install redis-server -y

Après avoir installé Redis, démarrez le service Redis et activez-le après le redémarrage du système avec la commande suivante :

systemctl start redis-server
systemctl enable redis-server

Vous pouvez également vérifier l'état du serveur Redis avec la commande suivante :

systemctl status redis-server

Vous devriez obtenir le résultat suivant :

? redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 05:57:45 EDT; 4s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 2284 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
 Main PID: 2285 (redis-server)
    Tasks: 4 (limit: 1138)
   Memory: 6.8M
   CGroup: /system.slice/redis-server.service
           ??2285 /usr/bin/redis-server 127.0.0.1:6379

Sep 06 05:57:45 debian systemd[1]: Starting Advanced key-value store...
Sep 06 05:57:45 debian systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: No such file or di
Sep 06 05:57:45 debian systemd[1]: Started Advanced key-value store.

Par défaut, Redis écoute sur l'hôte local sur le port 6379. Vous pouvez le vérifier avec la commande suivante :

ps -ef | grep redis

Vous devriez voir le résultat suivant :

redis     2285     1  0 05:57 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root      2294   706  0 05:59 pts/0    00:00:00 grep redis

Ensuite, testez la connectivité Redis avec la commande suivante :

redis-cli

Vous devriez voir le résultat suivant :

127.0.0.1:6379> 

Maintenant, vérifiez la connectivité Redis avec la commande ping :

127.0.0.1:6379> ping

Si tout va bien, vous devriez voir le résultat suivant :

PONG

Une fois que vous avez terminé. Vous pouvez passer à l'étape suivante.

Configurer Redis en cache

Vous pouvez configurer Redis en cache en modifiant le fichier /etc/redis/redis.conf :

nano /etc/redis/redis.conf

Ajoutez les lignes suivantes à la fin du fichier :

maxmemory 64mb
maxmemory-policy allkeys-lru

Lorsque la mémoire maximale de 64 Mo est atteinte. Redis supprimera toute clé conformément à l'algorithme LRU. Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Redis avec la commande suivante :

systemctl restart redis-server

Une fois que vous avez terminé. Vous pouvez passer à l'étape suivante.

Configurer l'authentification Redis

Par défaut, vous pouvez exécuter n'importe quelle commande dans le shell Redis. Il est donc recommandé de configurer l'authentification Redis pour que les clients exigent un mot de passe avant d'exécuter des commandes. Vous pouvez configurer l'authentification par mot de passe directement dans le fichier de configuration de Redis. Pour cela, ouvrez le fichier /etc/redis/redis.conf avec votre éditeur préféré :

nano /etc/redis/redis.conf

Sous la section SÉCURITÉ, recherchez la ligne suivante :

# requirepass foobared

Décommentez et remplacez-le par le mot de passe souhaité, comme indiqué ci-dessous :

requirepass AlsW34%#df

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Redis pour appliquer les modifications de configuration :

systemctl restart redis-server

Maintenant, accédez au shell Redis avec la commande suivante :

redis-cli

Maintenant, exécutez la commande suivante sans vous authentifier :

127.0.0.1:6379> INFO server

Cela ne fonctionnera pas car vous ne vous authentifiez pas. Vous devriez obtenir l'erreur suivante :

NOAUTH Authentication required.

Ensuite, exécutez la commande suivante pour vous authentifier avec le mot de passe spécifié dans le fichier de configuration Redis :

127.0.0.1:6379> AUTH AlsW34%#df

Vous devriez obtenir le résultat suivant :

OK

Maintenant, exécutez à nouveau la commande précédente :

127.0.0.1:6379> INFO server

Cela fonctionnera avec succès et vous devriez voir la sortie suivante :

# Server
redis_version:5.0.3
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:afa0decbb6de285f
redis_mode:standalone
os:Linux 4.19.0-5-amd64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:8.3.0
process_id:2308
run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6c
tcp_port:6379
uptime_in_seconds:50
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:7483371
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf

Une fois que vous avez terminé. Vous pouvez passer à l'étape suivante.

Renommer des commandes spécifiques

Pour des raisons de sécurité, il est recommandé de renommer certaines commandes considérées comme dangereuses.

Ici, nous allons renommer la commande "config". La commande config est utilisée pour récupérer le mot de passe Redis. Voyons avec un exemple :

Tout d'abord, connectez-vous et authentifiez-vous le shell Redis avec la commande suivante :

redis-cli
127.0.0.1:6379> AUTH AlsW34%#df

Ensuite, récupérez le mot de passe Redis avec la commande suivante :

127.0.0.1:6379> config get requirepass

Vous devriez obtenir le résultat suivant :

1) "requirepass"
2) "AlsW34%#df"
127.0.0.1:6379> 

Vous pouvez renommer la commande de configuration en modifiant le fichier /etc/redis/redis.conf :

nano /etc/redis/redis.conf

Recherchez la ligne suivante :

# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

Décommentez et remplacez par la chaîne souhaitée :

rename-command CONFIG H2sW_Config        

Enregistrez et fermez le fichier. Ensuite, redémarrez le service Redis avec la commande suivante :

systemctl restart redis-server

Ensuite, connectez-vous et authentifiez-vous le shell Redis avec la commande suivante :

redis-cli
127.0.0.1:6379> AUTH AlsW34%#df

Ensuite, récupérez le mot de passe Redis avec la commande config :

127.0.0.1:6379> config get requirepass

Nous avons renommé cette commande pour que vous obteniez l'erreur suivante :

(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`, 

Maintenant, exécutez la commande renommée comme indiqué ci-dessous :

127.0.0.1:6379> H2sW_Config get requirepass

Vous devriez obtenir le résultat suivant :

1) "requirepass"
2) "AlsW34%#df"

Enfin, quittez le shell Redis avec la commande suivante :

127.0.0.1:6379> exit

Conclusion

Toutes nos félicitations! vous avez installé et sécurisé avec succès le serveur Redis sur Debian 10. J'espère que vous avez maintenant suffisamment de connaissances pour sécuriser votre serveur Redis avec une authentification par mot de passe. N'hésitez pas à me demander si vous avez des questions.


Debian
  1. Comment installer et sécuriser MongoDB sur Debian 11

  2. Comment installer le serveur Redis sur Debian 11

  3. Comment installer et configurer Redis 6.0 sur Debian 11

  4. Comment installer et sécuriser MariaDB sur Debian 11

  5. Comment installer et configurer le serveur VNC sur Debian 10

Comment installer et sécuriser phpMyAdmin sur Debian 11

Installer la pile LAMP sur Debian 11

Comment installer le serveur Web Caddy sur Debian 11

Comment installer et configurer RabbitMQ sur Debian 11

Comment installer et configurer Memcached sur Debian 11

Installer un serveur Redis sur Debian 11