Redis安全设置

Redis默认安装完成后,没有登录密码和安全设置,没有密码的系统安全隐患很大,另外如果发生一些误操作,比如FLUSHALL会导致整个库被清空,所以为了安全起见,需要设置reids的安全配置项,具体内容如下:

1. 设置密码

找到redis.conf配置文件中的requirepass项,在后面加入redis访问密码,密码一定要有大小写字母、特殊符号、数字和字母组合,例如:QwE!@#7a8B

1
requirepass yourpassword

2. 禁用危险指令

在redis.conf中,通过将指令禁用达到避免人为误操作的可能
rename-command 是表示重命名指令,如果是指令后是空字符串 “” , 那么就表示禁用,如果填入其他值,就表示改名,另外还有一个更绝的方法,是redis在安装时,修改redis的源码src/redis.c中以下内容,将代码注释掉即可以解决:

1
2
{"flushdb",flushdbCommand,1,"w",0,NULL,0,0,0,0,0},
{"flushall",flushallCommand,1,"w",0,NULL,0,0,0,0,0}

主要的危险命令如下:

  • FLUSHALL 删除所有库中的key

  • FLUSHDB 删除当前库中所有的key

  • KEYS 匹配数据库中的key 如果是在生产库使用KEYS * 对性能影响非常大,研发或者测试环境可以保留

以下是具体使用方法:

1
2
3
4
5
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""