如何给Redis配置认证密码

by LauCyun Nov 15,2015 13:29:36 10,308 views

前几日,Redis 未授权访问配合 SSH key 文件被利用的情况,导致一大批 Redis 服务器被黑。本文介绍如何给 Redis 服务器配置密码。漏洞分析传送门:Redis 未授权访问配合 SSH key 文件利用分析

打开配置文件redis.conf找到:

#requirepass foobared  

去掉行前的注释,并修改密码为所需的密码,保存文件

requirepass 123456

重启redis

$ sudo service redis restart

或者

$ sudo service redis stop  
$ sudo redis-server /etc/redis.conf 

这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许

$ redis-cli -h 127.0.0.1 -p 6379
$ redis 127.0.0.1:6379>
$ redis 127.0.0.1:6379> keys *
(error) ERR operation not permitted
$ redis 127.0.0.1:6379> select 1
(error) ERR operation not permitted
$ redis 127.0.0.1:6379[1]>

尝试用密码登录并执行具体的命令,看到可以成功执行

$ redis-cli -h 127.0.0.1 -p 6379 -a 123456  
$ redis 127.0.0.1:6379> keys *  
1) "myset"  
2) "mysortset"  
$ redis 127.0.0.1:6379> select 1  
OK  
$ redis 127.0.0.1:6379[1]> config get requirepass  
1) "requirepass"  
2) "123456"  

除了在登录时通过-a参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。

$ redis-cli -h 127.0.0.1 -p 6379  
$ redis 127.0.0.1:6379> config get requirepass  
(error) ERR operation not permitted  
$ redis 127.0.0.1:6379> auth myRedis  
OK  
$ redis 127.0.0.1:6379> config get requirepass  
1) "requirepass"  
2) "123456"  

 

如果master配置了密码,那么slave也要配置相应的密码参数,否则无法进行正常复制的。

slave中配置文件内找到如下:

#masterauth  mstpassword 

移除注释,修改密码即可。

 

(本文完)

Tags