1、指令安全
在Redis中有一些比较危险的指令
- keys导致Redis卡顿
- flushdb和flushall导致redis所有数据清空
在redis中为了避免认为的误操作,配置文件中提供rename-command指令用于将危险指令修改成特殊的名字。
比如:
rename-command keys xxxx 在需要执行keys时就需要使用新的xxxx了
也可以将将指令设置成空串,使得不能使用
rename-command flushdb “”
2、端口安全
Redis默认监听6379端口,如果服务器主机有外网地址,redis的服务将会直接暴露在外围,很容易造成内部数据的不安全
一般为了安全需要指定监听ip,如果有进一步需要可以增加redis密码,密码会影响主从节点的配置,从节点也需要密码才能访问主节点
3、SSL代理
Redis中不支持SSL连接,意味着客户端和服务端之间的数据交互不应该直接暴露在公网上传输,以避免被窃听
常见的ssl代理有ssh,Redis官方推荐使用spiped工具
原因:
a.功能单一
b.使用比较简单
c.易于理解
如果redis的主从实例需要跨机房复制,spiped也可以使用
spiped原理
左边的spiped进程负责接受来自redis client发送过来的请求数据,加密后传送到右边spiped进程
右边的spiped进程将接收到的数据解密后传递到redis server,然后redis server在走一个反流程将响应回复给redis client
每一个spiped进程都有一个监听端口用来接收数据,同时还会作为客户端将数据转发到目标地址
spiped 进程需要成对出现,相互之间需要使用相同的共享密钥来加密消息