发布于 

阿里云redis事故纪录

经过

  1. 今天早上生产出现事故,所有到网站的请求nginx报500错误,查看后台日志,发现连不上redis了;
  2. 进入服务器,可以连上redis, 但是所有操作提示需要登陆,当时没有重视,只是纪录并重启redis;
  3. 下午再次出现相同情况。查看连接到redis端口的日志,发现了不属于公司服务器的IP,怀疑是被阿里云内网机器脚本扫描并攻击端口。
  4. 修改了阿里云的安全策略,由允许内网访问(当时没考虑到阿里云的其它内网机器也可能进行攻击)修改为只允许安全组内机器访问,再次重启,之后一直正常。
  5. 然后重启后发现,生产上的一些缓存组件查不到数据。折腾了很久,查看启动日志也正常,后来才想到,可能是redis-slave没有重启,不会自动重连(写操作在redis-master,读操作在redis-slave),重启redis-slave,解决问题。

问题

  1. 不知道攻击者是如何通过连接redis,修改配置,使得正常的请求无法连接,需要了解redis配置;
  2. 不知道redis-slave不会自动重连,需要了解redis集群配置以及注意事项。

补充

//todo