【指令安全】
Redis中有一些需要慎重使用的危险指令,keys指令会导致服务卡顿,flushdb和flushall会让Redis的所有数据全部清空,config可以从客户端修改服务的密码并且立即生效。
对于这些危险的指令,Redis在配置文件提供了rename-command指令用于将危险的指令修改成特别名称避免误操作。
rename-command keys xxxkeysxxx
如果还想执行keys方法,那就不能直接敲keys命令了,而需要键入xxxkeysxxx。如果想完全封杀某条指令,可以将指令rename为空串。
rename-command flushall ""

【端口安全】
Redis默认端口6379,最好是当前服务器不对外开放。如果直接暴露了这个端口,就会有被人攻击的风险。
1.确保在Redis中配置指定的IP地址,避免对所有外网地址开放,降低风险;
2.增加Redis的密码访问限制,避免无密码直接访问

【Lua脚本安全】
开发者需要禁止Lua脚本由用户输入的内容UGC生成,这可能会被黑客利用,通过植入恶意的攻击代码来得到Redis的主机权限。
同时,我们应该让Redis以普通用户的身份启动,这样即使存在恶意代码,黑客也无法拿到root权限。

【SSL代理】
Redis并不支持SSL链接,意味着客户端和服务器的数据交互不应该直接暴露在公网传输。其实从使用的场景上来说,也很少又这种需要异步跨公网的服务实例组合使用,这对于Redis的性能优势是会大打折扣的。
但如果一定要使用,Redis的官方推荐使用spiped工具。

spiped会在客户端和服务器各自根据密钥启动一个spiped进程,RedisClient发送的数据加密后传入spiped进程,发送到服务器上的spiped进程上,之后解密传输给Redis Server。
这和SSH的原理有些相似,但是spiped并不使用SSH协议,它依赖于一个认证的双方共享的安全密钥来进行通信的对称加密。这对于建立一个通信安全的Redis集群是有帮助的。

posted on 2022-01-10 22:33  长江同学  阅读(220)  评论(0编辑  收藏  举报