1.绑定IP:
# bind 127.0.0.1
把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址
2.设置密码,以提供远程登陆,方便不安全
redis.conf 配置文件里设置密码:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下:
redis-cli -h yourIp -p yourPort//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key
报错如下
(error) ERR operation not permitted
这时候你可以用授权命令进行授权,就不报错了
命令如下:
auth youpassword
另外,在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令
命令如下:
redis-cli -h yourIp-p yourPort -a youPassword
除了在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了密码必须重设。命令行设置密码方式如下:
config set requirepass yourPassword
有时候我们不知道当前redis服务器是否有设置验证密码,或者忘记了密码是什么,我们可以通过命令行输入命令查看密码,命令如下:
config get requirepass
如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword
3、继续加固,redis.conf 里面加:
rename-command CONFIG ""
不允许第二步里使用的config命令。
4、历史里有密码也不安全,继续加固:
foo@bar:~$ rm .rediscli_history
foo@bar:~$ ln -s /dev/null .rediscli_history
foo@bar:~$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
foo@bar:~$ ls -al .rediscli_history
lrwxrwxrwx 1 foo foo 9 Sep 30 00:19 .rediscli_history -> /dev/null