博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis密码设置、访问权限控制等安全设置
阅读量:6682 次
发布时间:2019-06-25

本文共 1377 字,大约阅读时间需要 4 分钟。

redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护,方法有2,如下。

1.比较安全的办法是采用绑定IP的方式来进行控制

 请在redis.conf文件找到如下配置
# If you want you can bind a single interface, if the bind option is not# specified all the interfaces will listen for incoming connections.## bind 127.0.0.1

把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问

这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录,这个方法有一点不太好,我难免有多台机器访问一个redis服务。

2.设置密码,以提供远程登陆

打开redis.conf配置文件,找到requirepass,然后修改如下:

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

由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)

本文参考如下文章,并根据自己的实际使用经验进行了加工,细化。转载请注明: 

参考:

你可能感兴趣的文章
vim与sed结合使用
查看>>
linux系统基础服务解析
查看>>
WLC中DCA选项
查看>>
18.程序逻辑问题
查看>>
字符子串
查看>>
db4o 参考资料
查看>>
mysql生产环境___主从同步修复案例
查看>>
对Controller的单元测试
查看>>
人工智能无法挑战人心
查看>>
移动web 1px边框解决方案
查看>>
关于硬盘的一切!
查看>>
centos7.4 Rsync配置和触发备份
查看>>
Linux下通配符记录
查看>>
Spring Cloud云服务 - HongHu架构common-service 项目构建过程
查看>>
71.shell中的函数、数组
查看>>
flannel安装
查看>>
cnetos7源码安装openssh(加速ansible)
查看>>
学会让你才是赢家,让了你才是智者。忍耐富贵,静默中绽放成功之花。
查看>>
MySQL主从复制实践与部署
查看>>
Shell笔记8——for和select循环的应用实践
查看>>