redis的作者的理念是‘简洁为美’,所以并没有为redis设计复杂的安全配置
redis需要运行在安全的环境下,要做好redis外部的安全工作,例如不使用redis的默认端口、配置防火墙保护redis、web应用访问redis时做好安全检查等
redis本身的安全配置主要有:
(1)信任IP绑定
指定可以访问redis的IP,防止外部访问
配置方法
在 redis.conf 中修改 bind 项,默认是关闭的,需要去掉前面的 #,修改后面的ip地址,例如
bind 192.168.1.100 10.0.0.1
(2)授权
设置访问redis时需要密码授权
需要注意的是,密码的强度一定要很高,例如32位以上,因为redis的性能很好,暴力破解密码的话,每秒钟可以达到15万次
配置方法
在 redis.conf 中修改 requirepass 项,默认是关闭的,需要去掉前面的 #,修改后面的密码,例如
requirepass your_password
(3)命令重命名
对一些危险命令进行重命名,防止恶意操作,相当于把命令名称变为密码,只有内部人员知道
例如下面这两个命令
FLUSHALL 可以删除所有数据
CONFIG 可以对redis修改配置
配置方法
在 redis.conf 中修改 rename-command 项,默认是关闭的,需要去掉前面的 #
rename-command 后面有两个参数:原命令名、新命令名
例如
rename-command CONFIG b840fc02
把 CONFIG 命令名改为了一个没有任何意义的字符串
还可以彻底屏蔽一个命令,使用空字符串即可
rename-command CONFIG ""
注意:在配置了主从复制的环境中,命令名称修改后,会把新命令名发送给slave,如果slave中没有修改命令名,则会发生错误