Je voudrais désactiver protected-mode
sur ma production Redis. En ce qui concerne l'erreur suivante que j'ai reçue de mon autre instance Redis-Sentinel, je pouvais la désactiver en direct en me connectant à Redis à partir de la machine principale sur laquelle elle fonctionne.
REFUSÉ Redis s'exécute en mode protégé car le mode protégé est activé, aucune adresse de liaison n'a été spécifiée, aucun mot de passe d'authentification n'est demandé aux clients. Dans ce mode, les connexions ne sont acceptées qu'à partir de l'interface de bouclage. Si vous souhaitez vous connecter à partir d'ordinateurs externes à Redis, vous pouvez adopter l'une des solutions suivantes:
1) Désactivez simplement le mode protégé en envoyant la commande `` CONFIG SET protected-mode no '' à partir de l'interface de bouclage en vous connectant à Redis à partir du même hôte que le serveur exécute, mais assurez-vous que Redis n'est pas accessible publiquement depuis Internet si vous le faites. Utilisez CONFIG REWRITE pour rendre ce changement permanent.
2) Alternativement, vous pouvez simplement désactiver le mode protégé en modifiant le fichier de configuration Redis et en définissant l'option de mode protégé sur "non", puis en redémarrant le serveur.
3) Si vous avez démarré le serveur manuellement juste pour le tester, redémarrez-le avec l'option '--protected-mode no'.
4) Configurez une adresse de liaison ou un mot de passe d'authentification.
REMARQUE: Vous devez uniquement effectuer l'une des opérations ci-dessus pour que le serveur commence à accepter les connexions de l'extérieur.
Mais lorsque je me connecte et essaie de le désactiver, j'obtiens l'erreur (error) ERR Unsupported CONFIG parameter: protected-mode
.
Il n'y a pas d'authentification configurée ou autre - toute la sécurité est gérée par des règles de pare-feu. Le redis.conf
est presque par défaut.
root@svim-redis03 /etc/redis # redis-cli
127.0.0.1:6379> CONFIG GET protected*
(empty list or set)
127.0.0.1:6379> CONFIG GET bind*
1) "bind"
2) "127.0.0.1"
127.0.0.1:6379> CONFIG SET protected-mode no
(error) ERR Unsupported CONFIG parameter: protected-mode
127.0.0.1:6379> exit
root@svim-redis03 /etc/redis # redis-server --version
Redis server v=3.2.9 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=86450d2ba8219c1e
Y a-t-il quelque chose que je dois vérifier ou modifier avant? Je n'ai trouvé aucun indice dans documentation ou problèmes GitHub .
Il n'est même pas possible de changer l'adresse de liaison ou tout autre paramètre de configuration. Dois-je d'abord activer les modifications de configuration?
127.0.0.1:6379> config set bind "127.0.0.1 11.12.13.14"
(error) ERR Unsupported CONFIG parameter: bind
Il s'avère que le serveur actuel en cours d'exécution n'est pas la même version que le binaire que j'ai installé.
Connectez-vous simplement via redis-cli
à votre instance redis et saisissez INFO server
qui renvoie un tas d'informations.
127.0.0.1:6379> INFO server
# Server
redis_version:3.0.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:869e89100d5ea8c2
redis_mode:standalone
os:Linux 4.2.0-35-generic x86_64
Arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.4
process_id:26720
run_id:6645270dd2ac6a7f96caa054f9dbba9e66566755
tcp_port:6379
uptime_in_seconds:10971777
uptime_in_days:126
hz:10
lru_clock:6676576
config_file:/etc/redis/redis.conf
Comme vous pouvez le voir, cette instance de redis fonctionne pendant près de 127 jours et utilise redis_version:3.0.7
.
Redémarrez votre serveur et assurez-vous de l'avoir redémarré! Par exemple, avec la plupart des distributions Linux, vous pouvez le faire en appuyant sur les commandes suivantes.
root@svim-redis03 ~ # service redis-server stop
Stopping redis-server: redis-server.
Vérifiez s'il est vraiment hors ligne en essayant de vous connecter avec redis-cli
. Si vous pouvez toujours vous connecter, l'instance est toujours en cours d'exécution. Vérifiez cela en recherchant les processus de redis actifs.
root@svim-redis03 ~ # ps -efl |grep redis
1 S redis 12418 1 0 80 0 - 10673 ep_pol 2016 ? 05:33:17 /usr/bin/redis-server 127.0.0.1:6381
1 S redis 12442 1 0 80 0 - 11697 ep_pol 2016 ? 05:33:46 /usr/bin/redis-server 127.0.0.1:6382
1 S redis 12453 1 0 80 0 - 10673 ep_pol 2016 ? 05:40:17 /usr/bin/redis-server 127.0.0.1:6383
4 S root 16570 16386 0 80 0 - 2489 wait_w 10:42 pts/7 00:00:00 tail -f /var/log/redis/redis-server-6379.log
0 S root 17064 12637 0 80 0 - 3617 pipe_w 10:47 pts/1 00:00:00 grep --color=auto redis
1 S redis 26720 1 0 80 0 - 453041 ep_pol Mar07 ? 08:37:01 /usr/bin/redis-server 127.0.0.1:6379
Comme vous pouvez le voir, l'instance (ID de processus: 26720) est toujours en cours d'exécution. Quittez-le avec la commande suivante.
kill 26720
Après avoir tué le processus, vérifiez à nouveau avec ps -efl |grep redis
si l'instance est vraiment en panne.
Enfin recommencez avec
root@svim-redis03 ~ # service redis-server start
Starting redis-server: redis-server.
Vérifiez maintenant si l'instance fonctionne avec la bonne version.
root@svim-redis03 ~ # redis-cli
127.0.0.1:6379> INFO server
# Server
redis_version:3.2.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:86450d2ba8219c1e
redis_mode:standalone
os:Linux 4.2.0-35-generic x86_64
Arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.4
process_id:17135
run_id:40d6fa2e2b25e8f5b97a3c97ec1bddb8edda0014
tcp_port:6379
uptime_in_seconds:11
uptime_in_days:0
hz:10
lru_clock:6677102
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf