如何在Redis 3.2.6 Sentinel中禁用受保护模式?

如何在Redis 3.2.6 Sentinel中禁用受保护模式?,redis,sentinel,redis-sentinel,Redis,Sentinel,Redis Sentinel,我已尝试以下错误消息建议的所有操作: (错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码。在此模式下,只能从环回接口接受连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:1)通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,然而,若你们这样做的话,请确保Redis不能从互联网上公开访问。使用“配置重写”将此更改永久化。2)

我已尝试以下错误消息建议的所有操作:

(错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码。在此模式下,只能从环回接口接受连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:1)通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,然而,若你们这样做的话,请确保Redis不能从互联网上公开访问。使用“配置重写”将此更改永久化。2) 或者,您可以通过编辑Redis配置文件,将受保护模式选项设置为“否”,然后重新启动服务器来禁用受保护模式。3) 如果只是为了测试而手动启动服务器,请使用“--protectedmodeno”选项重新启动服务器。4) 设置绑定地址或身份验证密码。注意:您只需要执行上述操作之一,服务器就可以开始接受来自外部的连接

我的
/etc/redis/sentinel.conf

daemonize yes sentinel myid XXX sentinel monitor master XXX 6379 2 sentinel down-after-milliseconds master 60000 sentinel config-epoch master 0 protected-mode no bind 0.0.0.0 port 26379 port 6379 bind 0.0.0.0 protected-mode no 我还尝试添加了
sentinel auth pass master XXX

我的整个后端都在私有子网上。我通过VPN进入防火墙后面的数据中心,来自同一个专用网络,我仍然只能在本地连接,而不会收到令人沮丧的错误消息

服务器环境:Debian 8、Redis 3.2.6
客户端环境:Ubuntu 16.10,redis cli 3.2.1
Redis实例:3
哨兵实例:3

我不仅做了一件事,还做了建议的三分之四的事情(没有设置命令行标志)。有人有任何指导或想法吗?很明显,我遗漏了一些我无法从错误消息、文档、Stackoverflow、Google和试用错误中找出的东西。我想我应该先在这里发布一个问题,然后再深入研究源代码

感谢您的帮助。谢谢

。。。而且,是的,我在配置更改后重新启动了守护进程。:)

正如您所知,暴露在互联网上的未受保护的Redis实例引发了几个问题。在我的博客文章中,我谈到了为什么默认情况下限制绑定到127.0.0.1可能是一个可用性问题,更糟糕的是,可能无法解决问题(请评论“bind”语句并重新启动!)

同一篇博文还介绍了一种攻击,脚本小子们大量使用这种攻击来入侵Redis实例(我猜,认真的安全研究人员已经能够做到这一点)

所以我最终决定在Redis3.2正式发布之前做点什么:保护模式就是结果,它将被合并到3.2RC2中

此提交引入的不稳定分支中已经提供了该功能。这就是它的工作原理

当且仅当: 已启用保护模式(这是配置文件和无配置默认设置中的默认设置)

如果未配置身份验证密码

如果没有使用“bind”指令将Redis限制在某些接口上

然后Redis只接受来自环回IPv4和IPv6地址的连接。接受外部连接只是为了向客户端发送一个错误,让用户知道发生了什么:

> PING
(错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码

在此模式下,仅接受来自回溯接口的连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:

  • 只需通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,但是,如果这样做,请确保不能从internet公开访问Redis。使用“配置重写”将此更改永久化

  • 或者,您可以通过编辑Redis配置文件,将受保护模式选项设置为“否”,然后重新启动服务器来禁用受保护模式

  • 如果只是为了测试而手动启动服务器,请使用
    --protectedmodeno
    选项重新启动服务器

  • 设置绑定地址或身份验证密码。注意:您只需要执行上述操作之一,服务器就可以开始接受来自外部的连接


  • 这应该以合理的方式保护错误,同时为用户提供线索,而不是拒绝连接。请分享您的反馈意见,以便我们可以根据需要对此功能进行更改,然后再将其合并到Redis 3.2 RC2中。谢谢。

    你修好了吗?我遇到了同样的问题:-/