公网的Redis还敢不设置密码?我看你是疯了


公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
朋友们,我有一台华为云耀服务器,闲来无事,在上面装了个redis,做一些测试研究,结果被攻击了,这还是头一回遇见,因为以前的环境还是使用内网居多 。
【公网的Redis还敢不设置密码?我看你是疯了】现象描述
因为头一天忙到挺晚的,电脑没有关机,所以第二天准备将电脑清理下,关一关暂时不用的软件,当看到ftp远程工具时,我整个人都精神了,你们看下:
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
整个人一下就精神了,我这个服务器只有一个MySQL和一个redis,并且基本没有在使用,怎么就把内存沾满了,cpu还占用了一半的样子,当即我就想到,我可能被攻击了 。
登录华为云控制台看看
第一个想到的就是登录控制台看看,什么时间开始被攻击的?
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
如上图所示大概就是前一晚的二十二点四十多开始的 。
我比较惊讶的是华为云没有什么告警的机制吗?突然大流量涌入,且服务器内存都满了,它都没有任何的提示信息,还在这里展示无风险:
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
寻找问题
当前最重要的就是找找哪里被攻击了,其实我都很清楚,一定是昨天安装的redis了 。主要是两个原因:
 
  • 安全组开放了全部ip的入口访问
  • 没有设置密码
 
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
那么我们就去看看redis有什么现象?
客户端工具连接一下,发现搜有的key都没啦,变成了如下的内容:
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
既然如此,我们不妨去redis的日志文件看看,它都经历了什么 。日志在哪呢?在配置文件当中看看它的路径,结果发现自己没配,还是在默认的位置,/dev/null:
公网的Redis还敢不设置密码?我看你是疯了

文章插图
 
这是什么意思?这就是告诉我,谁让你不配置日志呢?现在想看根本就没有 。
解决问题
既然如此,我们直接解决问题好了 。首先想到的是直接杀死redis的进程:
[root@hecs-402944 myredis]# ps -ef|grep redisroot 12810 10424 0 10:30 pts/0 00:00:00 grep --color=auto redisroot 21392 1 0 3月02 ? 00:01:19 redis-server *:6379[root@hecs-402944 myredis]# kill -9 21392
然后你会发现,并没有什么用,无论是cpu还是内存,依然高居不下 。我甚至不知道怎么解决,那么就直接重启服务器吧 。重启大法好啊,总算是释放了被占用的资源了 。
但是一段时间后,内存占用又上去了,所以事情必然不是那么简单了 。从前面的Redis中的脚本内容可以发现,cron表达式,一定是有定时任务在不断地跑,所以我沿着这条线看看服务器上面的定时任务有哪些:
[root@hecs-402944 ~]# crontab -l*/30 * * * * sh /etc/newinit.sh >/dev/null 2>&1
只有一个,一定是它,我们先停了它,然后看看它到底是什么内容 。
[root@hecs-402944 etc]# rm -rf newinit.shrm: 无法删除"newinit.sh": 不允许的操作
我直呼好家伙,不允许删除 。
使用下面的命令查看这个文件:
lsattr newinit.sh----ia-------e-- newinit.sh
这个ia是什么意思?
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件 。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件 。i:Immutable,系统不允许对这个文件进行任何的修改 。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件 。
修改这个权限:
[root@hecs-402944 etc]# chattr -ia newinit.sh-bash: /usr/bin/chattr: 权限不够
权限不让修改 。。,使用下面的方法去重新创建一个chattr2好了:
[root@hecs-402944 etc]# cp /usr/bin/chattr /usr/bin/chattr2[root@hecs-402944 etc]# chmod 755 /usr/bin/chattr2[root@hecs-402944 etc]# chattr2 -i /usr/bin/chattr[root@hecs-402944 etc]# chmod 755 /usr/bin/chattr[root@hecs-402944 etc]# ls -la /usr/bin/chattr-rwxr-xr-x 1 root root 11536 9月 30 2020 /usr/bin/chattr[root@hecs-402944 etc]# lsattr /usr/bin/chattr-------------e-- /usr/bin/chattr


推荐阅读