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中没有修改命令名,则会发生错误