Redis安全策略

1年前 (2024-04-27)
Redis 提供了诸多安全策略,比如为了保证数据安全,提供了设置密码的功能。Redis 密码设置主要有两种方式:一种是使用CINFIG令来设置密码;另外一种则是手动修改 Redis 的配置文件。虽然看似前者更为简单,其实两种方式各有特点。本节将对它们进行介绍。

令配置密码

通过执行以下令查看是否设置了密码验证:

127.0.0.1:6379> CONFIG get requirepass

1) "requirepass"

2) ""

在默认情况下 requirepass 参数值为空的,表示无需通过密码验证就可以连接到 Redis 服务。

下面执行以下令设置密码。如下所示:

127.0.0.1:6379> CONFIG set requirepass "www.biancheng网站站点" rel="nofollow" />

127.0.0.1:6379> set key name www.biancheng网站站点" rel="nofollow" />

127.0.0.1:6379> AUTH www.biancheng网站站点" rel="nofollow" />

# requirepass foobared

requirepass www.biancheng网站站点" rel="nofollow" />

#首先停止服务:

C:\Users\Administrator>redis-server.exe --service-stop

#重启服务器

C:\Users\Administrator>redis-server.exe --service-start

#重新登陆

C:\Users\Administrator>redis-cli.exe -h 127.0.0.1 -p 6379 -a www.biancheng网站站点" rel="nofollow" />

rename-command keys 123keys123

如果您还想执行 keys 令,那就需要在令行输入123keys123。 当然也可以将指令 rename 成空字符串,这样就无法通过字符串来执行 keys 令了。

rename-command flushall ""

端口安全

Redis 默认*:6379,如果当前的服务器主机有外网地址,那么 Redis 的服务将会直接暴露在公网上,别有用心的人使用适当的探测工具就可以对 IP 地址进行端口扫描,从而威胁您的系统安全。

如果 Redis 的服务地址一旦可以被外网直接访问,其内部数据就彻底丧失了安全性。黑客们可以通过 Redis 执行 Lua 脚本拿到服务器权限,然后清空您的 Redis 数据库。因此务必在 Redis 的配置文件中绑定要的 IP 地址,避免类似的情况发生。如下所示:

bind 193.168.1.1 #绑定外网ip地址

不仅如此,还可以增加 Redis 的密码访问限制,客户端必须使用 auth 令传入正确的密码才可以访问 Redis。

requirepass yourspassword

这样即使地址暴露出去了,普通黑客也无法对 Redis 服务器进行任何指令操作。

密码配置也会影响到主从。要求从机必须配置与主服务相同的密码才可以进行主从。

masterauth yourspassword

SSH代理

Redis 不支持 SSL 链接,这意味着客户端和服务器交互的数据不应该在公网上传输,否则会有被的风险。如果必须要在公网上,可以考虑使用 SSL 代理。SSL 代理比较常见的有 ssh。Redis 官方也了一种代理工具,也就是 spiped (点击了解)。 其功能虽然单一,但使用起来比较简单,易于理解。