通用安全模型
旨在由“受信任环境”中的“受信任客户端”访问。Redis不因该由未受信的客户端直接访问,要通过中间层进行ACL控制。
一般而言,Redis没有进行最大的安全性优化,而是为了获得最佳性能和简单性。
网络安全
通过防火墙过滤;
修改配置文件监听指定的IP地址;
认证功能 | 密码 | AUTH
虽然没有提供访问控制,但是Redis提供了认证功能。
启用认证之后,它会拒绝响应未认证的客户端。客户端使用AUTH命令进行认证。
认证密码以明文的方式保存在redis.conf配置文件中。密码应该足够长:
由于Redis的响应非常快,短密码及其容易暴力破解;
密码不需要被记住,它以明文存储子啊redis.conf中;
认证功能是冗余层。在防火墙或者其他系统保护时效时,密码认证能够提供而外一个保存。
密码认证过程中密码是明文发送的,这无法阻止网络窃听。
使用命令设置密码
redis: set a password for redis
连接Redis之后,执行如下命令设置密码:config set requirepass “password”
!!!注意,在服务重启后,密码会时效。
获取当前密码
连接Redis之后,可以使用如下命令查看密码:
> config get requirepass
当然,前提是你已经通过了认证。否则是服务查看密码的
持久化设置密码
redis 安装启动及设置密码<windows>
修改redis.conf文件,加入如下行:
requirepass yourpassword
然后,重启Redis服务。(注意配置文件前不能由空行)
禁用特殊命令
没有访问控制导致客户端可以执行任何命令,有些命令应该被重命名。
在redis.conf中,使用rename-command来覆盖危险指令:
重命名指令:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
或删除指令:rename-command CONFIG “”
诸如此类的命令还有FLUSHALL、DEBUG等等。
保护模式
从3.2.0以后,如果绑定到所有的地址,并且没有设置密码,Redis会进入“保护模式”。
在这种模式下,Redis只会相应回环接口的查询,响应其他地址的其他客户端连接错误,并解释发生了什么,如何修复这个问题。
通过这种方式来避免由错误管理导[……]