Redis故障排查

故障一:Redis被攻击导致数据消失

排查故障: 查看redis.log文件

25078:M 29 Jan 2022 14:26:25.663 # Failed opening the RDB file crontab (in server root dir /etc) for saving: Permission denied
25078:M 29 Jan 2022 14:26:25.852 # Failed opening the RDB file crontab (in server root dir /etc) for saving: Permission denied
25078:M 29 Jan 2022 14:26:27.080 # Failed opening the RDB file authorized_keys (in server root dir /etc) for saving: Permission denied

故障原因: RDB文件存储位置/etc保存权限被拒绝,主要原因是由于允许全网访问以及redis密码设置过于简单导致rdb存储目录被攻击更改导致redis重启数据无法恢复被清空
故障处理

  • 步骤1:检查redis配置 rdb存储目录是否被修改
127.0.0.1:6379> config get dir
1) "dir"
2) "/etc"  #被修改
  • 步骤2:配置正确的目录 绝对路径
127.0.0.1:6379> config set dir /www/server/redis
  • 步骤3:修改 向全服开放的配置

bind 空或者0.0.0.0
protected-mode no
requirepass 空或者123456
以上配置过于简单容易被其他不法分子利用进行数据篡改

# 正确配置
# 绑定固定的IP地址或者本地IP,多个IP用英文逗号隔开即可
bing 127.0.0.1
# 设置模块保护
protected-mode yes
# 设置复杂度高 位数大于12位的密码,可以参考[密码随机生成器](https://suijimimashengcheng.bmcx.com/)
requirepass dNs%&8S%$vX$qO5m
  • 步骤4:隐藏或者禁用危险命令

隐藏命令规则: 设置"" ; 重命名规则: 设置英文单词
下面配置的命令规则是为redis安全保证,防止Redis被攻击而删除数据。

# 方式1:重命名Config命令
rename-command config ldconfig
rename-command eval ldeval
# 方式2:禁用命令
## 禁用配置命令
rename-command CONFIG ""
## 禁用使用 Lua 解释器执行脚本
rename-command EVAL ""
## 删除所有库中的key
rename-command FLUSHALL ""
## 删除当前库中所有的key
rename-command FLUSHDB ""
## 禁用查看所有key
rename-command KEYS ""
  • 步骤5:重启Redis服务
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值