文章目录

  • Pre
  • port
  • command
  • lua script
  • SSL proxy
  • 小结


Pre

这里我们主要谈一下使用 Redis 需要注意的安全风险以及防范措施,避免数据泄露和丢失,避免所在主机权限被黑客窃取,以及避免人为操作失误。


port

默认会监听 *:6379,如果当前的服务器主机有外网地址,Redis 的服务将会直接暴露在公网上。 一旦可以被外网直接访问,这何谈数据安全?

咋保护呢?

  1. bind ip

    Redis进阶-bind参数详解

    运维人员务必在 Redis 的配置文件中指定监听的 IP 地址

  2. 增加 Redis 的密码访问限制 requirepass & masterauth

    客户端必须使用 auth 指令传入正确的密码才可以访问 Redis,这样即使地址暴露出去了,普通黑客也无法对 Redis 进行任何指令操作.

    requirepass passwd
    

    密码控制也会影响到从库复制 ,如果配置了主从或者是集群模式,从库必须在配置文件里使用 masterauth 指令配置相应的密码才可以进行复制操作。

    masterauth passwd
    

    这俩密码必须一致。


command

Redis中有些指令会对 Redis 的稳定以及数据安全造成非常严重的影响。

比如

  • keys 指令会导致 Redis 卡顿 (单线程,需要关注n的量),

  • lushdb 和 flushall 会让 Redis 的所有数据全部清空。

  • config 可以动态修改参数

Redis 在配置文件中提供了 rename-command 指令用于将某些危险的指令修改成特别的名称,用来避免人为误操作。

比如在配置文件的 security 块增加下面的内容:

rename-command keys artisanlovecode

如果还想执行 keys 方法,那就不能直接敲 keys 命令了,而需要键入 artisanlovecode。

如果想完全封杀某条指令,可以将指令 rename 成空串,就无法通过任何字符串指令来执行这条指令了。

rename-command flushall ""

常用的

rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""

lua script

  • 必须禁止 Lua 脚本由用户输入的内容 (UGC) 生成,这可能会被黑客利用以植入恶意的攻击代码来得到 Redis 的主机权限。

  • 应该让 Redis 以普通用户的身份启动,这样即使存在恶意代码黑客也无法拿到 root 权限。


SSL proxy

Redis 并不支持 SSL 链接,意味着客户端和服务器之间交互的数据不应该直接暴露在公网上传输,否则会有被窃听的风险。

如果必须要用在公网上,可以考虑使用 SSL 代理。

SSL 代理比较常见的有 ssh,不过 Redis 官方推荐使用 spiped 工具

地址: http://www.tarsnap.com/spiped.html

同样 SSL 代理也可以用在主从复制上,如果 Redis 主从实例需要跨机房复制,spiped也可以派上用场.


小结

我们这里总结了最基本的 Redis 安全防护思路,安全防护措施务必做到位。

Redis进阶-Redis安全相关操作相关推荐

  1. Redis进阶-Redis的惰性删除

    文章目录 Pre del ------> unlink FLUSHDB/FLUSHALL --> FLUSHDB ASYNC/FLUSHALL ASYNC 异步队列 AOF Sync 扩展 ...

  2. Redis进阶-Redis集群 【高可用切换】【cluster-require-full-coverage】集群是否完整才能对外提供服务

    文章目录 Pre 需求 :集群不完整仍然需要对外提供服务 验证 Redis Cluster 架构 高可用切换 Code访问测试 继续停掉8006 ,验证集群是否down掉 Pre Redis进阶-Re ...

  3. Redis进阶-Redis 4种MQ 方案对比

    文章目录 Pre 方案1 Pub/Sub 优点 缺点 小结 方案2 List 优点 缺点 小结 方案3 ZSet 优点 缺点 小结 方案4 stream Pre 最终方案-----> Redis ...

  4. Redis进阶-Redis对于过期键的三种清除策略

    文章目录 Pre Redis Key的超时设置处理 被动删除 主动删除 当前已用内存超过maxmemory限定时,触发主动清理策略 总结 Pre Redis-17Redis内存回收策略 Redis K ...

  5. Redis进阶-Redis缓存优化

    文章目录 缓存穿透 定义 原因 缓存穿透问题解决方案 缓存空对象 布隆过滤器 缓存同时失效 缓存同时失效解决方案 缓存雪崩 缓存雪崩的解决方案 缓存击穿 ( 热点缓存key重建优化 ) 缓存击穿的解决 ...

  6. Redis进阶-Redis持久化原理

    文章目录 Pre 快照原理 fork( 多进程) AOF 原理 AOF 重写 fsync 运维 Redis 4.0 混合持久化 Pre Redis-16Redis备份(持久化) Redis 的数据全部 ...

  7. Redis进阶 - Redis主从工作原理详解

    文章目录 主从配置 主从工作原理 全量复制 增量复制 主从复制风暴 主从配置 简要回顾一下,Redis的主从配置 复制一份redis.conf文件 将相关配置修改为如下值: port 6380pidf ...

  8. Redis进阶-Redis使用建议一二事

    文章目录 命令使用 客户端使用 命令使用 [推荐] O(N)命令关注N的数量 例如hgetall.lrange.smembers.zrange.sinter等并非不能使用,但是需要明确N的值.有遍历的 ...

  9. Redis进阶-Redis键值设计及BigKey问题

    文章目录 键值设计 key设计 value设计 big key 定义 反例 bigkey的产生 如何优化bigkey 删除bigKey的注意事项 bigkey的危害 键值设计 key设计 (1)[建议 ...

最新文章

  1. 小米某程序员的忧虑:感觉互联网这两年要凉,突然想回家种地
  2. java中单例设计模式
  3. 让ABAP开发者更加轻松的若干快捷键
  4. 如何替公司省下数千万勒索费用
  5. iPhone5搭载iOS6:App应用与Siri攻略
  6. ITFriend创业败局(四):菜鸟CEO的自我修养
  7. 计算机硬件假故障,计算机硬件故障
  8. Visual Studio 2013运行的结果一闪而过
  9. MySQL 在 Mac 环境下的安装
  10. 英特尔为苹果代工基带芯片 是为X86逆袭移动市场铺路?
  11. 【转】UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 1: invalid continuation 汉字编码
  12. oracle防止绿盟扫描,Oracle认证:Oracle避免全表扫描方式
  13. cad角度怎么画_初学入门CAD,就这样成精了!
  14. [转]出现蓝屏代码stop ** 0x000000a5(0x00000001,0x89758d98,0x000000000,0x00000000)
  15. android更改menu字体颜色,Android 修改 Menu字体颜色
  16. Keepalived源码、yum安装-高可用(主备、主主)场景
  17. hbase表按rowkey和时间清理数据
  18. 小伙子利用C++设计出最难的“数独游戏”,让C++重回巅峰!
  19. 游泳过后,耳朵进水怎么办,中耳进水
  20. 高频功率放大器的电路组成

热门文章

  1. dw上按钮事件 pb_「React TS3 专题」使用 TS 的方式在类组件里定义事件
  2. c语言字符串去重简单,C语言实现简单飞机大战
  3. python executemany
  4. sql between
  5. pandas Series DataFrame 丢弃指定轴上的项(三)
  6. 文巾解题 810. 黑板异或游戏
  7. 深度学习核心技术精讲100篇(五十一)-Spark平台下基于LDA的k-means算法实现
  8. tableau可视化数据分析60讲(十三)-tableau常用可视化视图(条形图折线图饼图)
  9. 淘宝拼多多之争,从宏观的角度看拼多多是如何实现商业逆袭的?
  10. 随机样本选择——快速求解机器学习中的优化问题