Redis默认没有密码,并且只能本机访问。使用redis-cli连上以后可以执行任意命令。如果要开放外网连接,则需要设置密码,同时禁用危险命令或者对危险命令进行改名。
1.设置密码
( 1 )打开Redis的配置文件,搜索关键字“ requirepass ”
( 2 )将“requirepass”这一行的注释去掉,这一行的“foobared”就是默认密码,可以改成自己的密码
( 3 )保存配置文件并重启Redis,可以发现redis-cli连上Redis以后无法正常使用了
( 4 )如要正常使用Red i s ,则需要在re dis-cl i 连接时加上一个“ - a ”参数
redis - cli -a 密码
2.开放外网访问
( 1 )打开配置文件, 搜索“ bind ”找到配置网络的位置
( 2 )宦接把这一行注释,即可从外网访问Redis
• 在redis-cli中,如果要访问外网的Redis,则需要指定地址和端口,格式如下:
redis-cli -h Redis 地址 -p 端口 -a 密码
例如:
redis-cli -h 192.168.2.10 -p 3129 -a kingnameisgenius163
• 在Python中,如果要访问外网的Redis,则需将代码修改为:
import redis
client = redis.Redis(host='192.163.2.10', port=3129, password='kingnameisgenius')
禁用危险命令:
Redis中默认开启了一些非常高权限的命令。使用这些命令,轻则清空Redis,重则直接写入挖矿***甚至是SSH Key公钥,从而控制服务器。
通过修改Redis的配置文件,可以对一些危险命令进行改名或者禁用,从而降低安全风险。
( 1 )打开Redis配置文件, 添加以下几行内容:
rename-command CONFIG ""
rename-command FLUSHDB sfjafjfaerawe
rename-command FLUSHALL IWERDF
rename-command PEXPIRE OKASETTW
rename-command SHUTDOWN ""
rename-command BGREWRITEAOF SEWERWEFSDF
rename-command BGSAVE ASDFPEWE
rename-command SAVE ASDFKLEWE
rename-command DEBUG ""
( 2 )如果把命令重命名为空字符串,表示禁用这个命令。
对于一些比较危险但可能会用到的命令,可以把它改名;对于一些特别危险的命令,可以禁用。