本文发布于Cylon的收藏册,转载请著名原文链接~

为Redis客户端外部设置连接密码

因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可在一秒钟进行上万次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。

修改配置文件

1
requirepass 123@1

重启服务后登录客户端提示没有验证

1
2
3
$ redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

验证成功后,可以正常操作

1
2
3
4
5
127.0.0.1:6379> auth 123@1
OK
127.0.0.1:6379> keys *
1) "test-durable-1"
2) "test-durable"

命令行临时生效

在命令行设置后,redis在下次重启前,每次登录都需要验证密码

1
2
3
4
5
6
127.0.0.1:6379> CONFIG set requirepass 123@1
OK
127.0.0.1:6379> quit
$ redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

注意:配置Redis复制的时候如果主数据库设置了密码,需要在从数据库的配置文件中通过masterauth参数设置主数据库的密码,以使从数据库连接主数据库时自动使用AUTH命令认证。


通过mysql命令行指定密码方式登录Redis客户端

1
2
3
4
$ redis-cli -a 123@1
127.0.0.1:6379> keys *
1) "test-durable-1"
2) "test-durable"

危险命令重命名

1
2
3
rename-command flushall abc
rename-command get eee
rename-command FLUSHALL ""  #←禁用FLUSHALL命令
1
2
3
4
127.0.0.1:6379> get test-durable
(error) ERR unknown command 'get'
127.0.0.1:6379> eee test-durable
"test1"

绑定只能本机连接

Redis的默认配置会接受来自任何地址发送来的请求,即在任何一个拥有公网IP的服务器上启动Redis服务器,都可以被外界直接访问到。要更改这一设置,在配置文件中修改bind参数,如只允许本机应用连接Redis.

1
bind 127.0.0.1

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2016/11/redis-security/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。