redis学习-密码管理

前言

redis存在于内存中,这意味着redis每秒可以接收十万数量级的攻击,因此处于安全考虑,redis提供了密码验证。(每秒十万次,暴力破解一个密码岂不是也很简单,设定密码能抵御攻击吗?)

redis设置密码有两种方式

  • 修改配置文件,重启后生效,永久有效
  • 通过指令修改,立即生效,重启后失效

方法一:修改配置文件

通过修改redis.conf文件的requirepass属性配置密码。

[root@VM-0-4-centos etc]# vim redis.conf 
# 搜索并配置密码
requirepass 123
# 保存后启动redis
[root@VM-0-4-centos etc]# cd ../bin
[root@VM-0-4-centos bin]#/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 
24081:C 06 Aug 2020 20:14:16.348 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
24081:C 06 Aug 2020 20:14:16.348 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=24081, just started
24081:C 06 Aug 2020 20:14:16.348 # Configuration loaded

登录含密码的redis

  • auth pass指令验证登录
# 启动客户端,输入任意指令提示需要验证密码
[root@VM-0-4-centos bin]# ./redis-cli 
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
# 使用auth pass指令输入密码即可正常使用
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> keys *
(empty list or set)
  • -a pass 参数验证登录
[root@VM-0-4-centos bin]# ./redis-cli -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
(empty list or set)

方法二:客户端修改

登录客户端并使用config set requirepass pass指令设定密码

[root@VM-0-4-centos bin]# ./redis-cli 
127.0.0.1:6379> config get requirepass // 此时密码为空
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 123 // 设定密码123
OK
127.0.0.1:6379> config get requirepass // 设定后立即生效,输入指令需要先验证密码
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> config get requirepass // 验证密码后查询pass已设定为123
1) "requirepass"
2) "123"

重启后密码失效

127.0.0.1:6379> quit
[root@VM-0-4-centos bin]# ps -ef|grep redis
root     25456     1  0 20:23 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root     26922 23009  0 20:33 pts/0    00:00:00 grep --color=auto redis
[root@VM-0-4-centos bin]# kill -9 25456  // 关闭redis服务
[root@VM-0-4-centos bin]# ps -ef|grep redis
root     26954 23009  0 20:33 pts/0    00:00:00 grep --color=auto redis
[root@VM-0-4-centos bin]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf  // 重启redis服务
26967:C 06 Aug 2020 20:33:42.684 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
26967:C 06 Aug 2020 20:33:42.684 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=26967, just started
26967:C 06 Aug 2020 20:33:42.684 # Configuration loaded
[root@VM-0-4-centos bin]# ./redis-cli 
127.0.0.1:6379> config get requirepass // 此时密码为空,前文设定密码已失效
1) "requirepass"
2) ""

END

redis虽然提供了密码支持,但实际运用中,redis常用于内网环境中,设定密码除了增加操作量,并无其他用途。

具体是否需要设定密码,可以从系统的数据安全性,服务器安全性,网络安全性等方面综合考虑后决定。

原文地址:https://www.cnblogs.com/bcomll/p/13448852.html