Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
作者:13
GitHub:https://github.com/ZHENFENG13
版权声明:本文为原创文章,未经允许不得转载。
警惕
前一篇文章《Spring+SpringMVC+MyBatis+easyUI 整合进阶篇(九)Linux 下安装 redis 及 redis 的常用命令和操作》主要是一个简单的介绍,针对 redis 入门和安装及命令行简单的使用,虽然已经正常启动和使用,但是由于所有的设置都没有做任何改动,使用的是默认设置,默认端口、默认免密...... 其实目前状态下的 redis 相当于是一个裸奔的服务,多多少少是有一些安全性方面的缺陷,如果被一些别有用心的人扫描到或者攻击到还是比较麻烦的。
redis 密码设置
第一种方式:通过命令行设置
//首先通过```redis-cli```进入redis,如果没有启动redis的话则需要先启动redis服务:
redis-cli
//查看当前redis有没有设置密码:
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
//requirepass参数为空,即未设置密码,重新设置密码为123:
127.0.0.1:6379> config set requirepass 123
OK
//设置之后再去操作会报错:无权限
127.0.0.1:6379> get author
(error) NOAUTH Authentication required.
127.0.0.1:6379> info
NOAUTH Authentication required.
//auth + 密码用来验证,授权通过则可以进行正常操作:
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> get author
(nil)
127.0.0.1:6379> info
# Server
redis_version:4.0.2
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:5e81d0ebc9709a8a
但是这种方式有个缺点,当前配置 redis 密码的方法是临时的不会永久有效,如果 redis 重启之后密码就会失效。
第二种方式:修改redis.conf
文件
默认配置中,requirepass
是被注释的。
修改 redis.conf 配置文件
# requirepass foobared
requirepass 123 // 指定密码 123
希望配置密码永久不失效的话,则需要 redis 的配置文件 redis.conf 中找到并修改requirepass
参数, 保存后重启 redis 服务即可,密码不会再因为重启而失效了。
由于 redis 并发能力极强,仅仅只是设置密码也是不够的,攻击者可能在短期内发送大量猜密码的请求很容易暴力破解,所以建议密码强度越高越好,密码在配置文件里是明文显示,所以不用担心自己会忘记。
redis 默认端口修改
在服务器安装的一些服务,往往都有一个默认端口,而 redis 的默认端口则是 6379,通常我在安装了一些软件后会修改其默认端口,比如 mysql 的 3306 端口、svn 的 3690 端口或者其他的一些默认设置,我都会稍加修改一下,这个是个人习惯而已,可以不做参考。
打开 redis 的配置文件 redis.conf,找到 port 设置项,将 6379 改为想要修改的端口,重启即可。
禁止高危命令的随意使用
rename-command FLUSHALL redisflushall # 重命名 FLUSHALL 命令
rename-command FLUSHALL "" # 禁用 FLUSHALL 命令
类似的命令还有 CONFIG 和 EVAL 等。
总结
本文是关于 redis 安全性的个人总结:
- 密码设置是一定要做的。
- 至于一些高危命令也建议多加留意,不要随意执行。
- 而默认端口的修改则根据个人喜好或者项目组的要求了,不是一定要做。
首发于我的个人博客,新的项目演示地址:perfect-ssm, 登录账号:admin, 密码:123456
如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友。
如果你想继续了解该项目可以查看整个系列文章Spring+SpringMVC+MyBatis+easyUI 整合系列文章, 也可以到我的GitHub 仓库或者开源中国代码仓库中查看源码及项目文档。