Installer et sécuriser Redis
Redis est une base en mémoire utilisée comme cache, file de messages ou stockage de sessions. Sa vitesse vient du fait qu'il garde tout en RAM et répond sur un port sans chiffrement : une instance exposée à Internet est compromise très rapidement. L'installation Debian est simple ; l'essentiel du travail consiste à limiter l'écoute, authentifier les clients et choisir une persistance adaptée.
Installer et vérifier
sudo apt update
sudo apt install -y redis-server
systemctl status redis-server
redis-cli pingLa réponse attendue est PONG. Le service écoute par défaut sur 127.0.0.1:6379 ; confirmez-le avec ss -ltnp | grep 6379. Redis ne doit jamais être joint directement depuis votre poste : utilisez un tunnel SSH si vous devez inspecter les données.
Écoute locale et mode protégé
Dans /etc/redis/redis.conf, gardez :
bind 127.0.0.1 ::1
protected-mode yes
port 6379bind limite les interfaces ; protected-mode refuse les connexions non authentifiées venant d'ailleurs. N'ouvrez pas 6379 dans UFW. Un mot de passe seul ne protège pas un port public contre une attaque par force brute ou une faille applicative.
Mot de passe et ACL
Pour une instance à un seul client, requirepass suffit :
requirepass mot-de-passe-longsudo systemctl restart redis-server
REDISCLI_AUTH='mot-de-passe-long' redis-cli pingREDISCLI_AUTH évite le mot de passe dans l'historique et dans ps. Redis 6 et suivants proposent des ACL plus fines, avec un utilisateur limité à un préfixe de clés :
user app on >mot-de-passe-long ~app:* +@read +@write -@dangerousRenommer FLUSHALL ou CONFIG protège contre une erreur, mais casse certains outils ; évaluez le compromis. Pour un cache, la perte de données est souvent acceptable ; pour des sessions ou des files, elle ne l'est pas.
Persistance et mémoire
RDB écrit des instantanés périodiques (save 900 1), AOF journalise les écritures. Pour un cache, RDB suffit ; pour des données à conserver, activez appendonly yes et testez la reprise. maxmemory et maxmemory-policy allkeys-lru évitent de saturer la RAM du VPS. Redis est mono-thread : une commande lente bloque toutes les autres.
REDISCLI_AUTH='mot-de-passe-long' redis-cli BGSAVE
sudo ls -lh /var/lib/redis/dump.rdbCopiez dump.rdb hors site, ou utilisez REDISCLI_AUTH='mot-de-passe-long' redis-cli --rdb pour un transfert direct. Testez la restauration sur une instance jetable : une copie RDB d'un autre serveur ne se relit pas toujours sans vérifier la version.
Surveiller et dépanner
INFO memory et INFO stats donnent la pression mémoire et les évictions. Les journaux sont dans /var/log/redis/redis-server.log. NOAUTH signifie mot de passe manquant ; OOM command not allowed signifie maxmemory atteint ; Connection refused signifie service arrêté ou mauvaise interface. Évitez MONITOR en production prolongée : il expose toutes les commandes et ralentit l'instance.
Publicité
Cet article vous a-t-il aidé ?
À lire aussi
- Installer PHP-FPM pour un siteRelier Nginx à PHP 8.4-FPM par socket Unix, avec les bonnes permissions et une page de test.
- Déployer avec Git sur un VPSDéployer depuis un dépôt Git avec une clé de déploiement en lecture seule et des mises à jour prévisibles.
- Activer HTTPS avec CertbotObtenir et renouveler un certificat Let's Encrypt avec Certbot et Nginx, puis activer HSTS prudemment.