一个端口没关,我得服务器被黑到系统崩溃,看我怎么找回数据!
腾讯云服务器被黑了,没想到这是我第二次被黑,又是一个惨痛得经历!
先说说上次被黑得经历,上次被黑的服务器是阿里云,服务器倒是没事,仅仅是被删库了,主要原因有亮点,一是外网数据库端口没关,二是线上数据库密码过于简单,总结来说是弱密码口令攻击,数据库密码有多简单,123456,说到这里,一口老血喷出来!
这次被黑显得有些科幻了,搞到提工单都没办法解决,系统都没办法重启,我都怀疑入侵者在我机器根目录上上执行了 rm -rf *
首次发现
第一次发现得时候在于昨晚,在百度上查看网站得收录情况,突然发现网站打不开了!以为是服务器不稳定,打算登录上去重启一下,然后悲剧得发现登不上去了!
于是麻溜得去腾讯云提工单,看看是什么情况!
通过工程师得分析,我得机器是因为cpu爆满导致没有资源能够进行远程连接,建议我重启后通过VNC登录(网页登录得一种)
好嘛,终于通过网页端登录进来了,赶紧看看出了什么问题!由于我的服务都是基于docker得,于是首先docker查看了一下容器信息,一看吓一跳
卧槽,我的机器啥时候被挂上两个程序在跑了,一个是15小时前,另外一个是39小时前,也就是在这一两天,并且这个哥们倒是很聪明,没有动我得其他东西,要不是机器跑挂了我都没发现。立马删除了这两个容器
![](/qrcode.jpg)
好,问题找到了,我现在没有时间去管跑的这两个到底是啥应用,反正就是被黑了,至于被黑得原因,我想到前段时间写的帖子就猜到了:docker外网远程端口忘记关了。真是打脸啪啪啪
立马去关了远程端口,以防坏淫继续作乱
为了进一步保证安全,我再次更换了ECS服务器得登录密码
现在想着既然隐患都解决了,那就重启下系统呗。
完蛋,远程又是连接不上,还是只能通过VNC连接,这也不方便啊,心累,关灯睡觉,明天再说吧
第二天早上,通过xshell远程登录,还是登录不上,再次后台点击重启,过了一会,依旧是失败,通过VNC去连接,发现连VNC都连不进去了,只看到如下界面,没错,卡住不动了!重启都GG
有问题立马提工单找腾讯小哥哥啊,各种授权
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KfOPpi6y-1574071824949)(C:\Users\tyu\AppData\Roaming\Typora\typora-user-images\1574067849972.png)]
因为机器都重启不了,自然云硬盘数据快照备份都使用不了,也就是说
我的所有资料都GG了!!!!
通过我得描述,工程师确认是因为黑客攻击导致系统文件缺失,导致无法重启,必须得重装系统才能用了,那我得文件怎么办呢?我的数据库还存着上百篇得博客呢~ 于是为了将损失降低到最小,跟工程师沟通了一下恢复方案,对方建议我从原来得系统盘进行试恢复,希望黑我得这位老铁没把我以前手动备份得文件给清除,不然我真的要哭了!
首先,购买了一份云硬盘,将原来得系统盘数据拷贝到云硬盘,因为要想重新去查看原来得数据,必定是先重装系统然后挂载云硬盘,因为系统盘会随着实例释放,所以不得不掏钱买了一个一样大得云硬盘,花了十几块钱买了一个月得,开整!
首先将ecs服务器关机,然后进行系统盘拷贝,拷贝完成以后将不能启动得ecs服务器重装系统,嗯,思维缜密,给自己一个赞!
重装完成以后,将新的硬盘进行挂载,使用命令查看数据库盘符
# fdisk -l
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c5e30
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 104857566 52427759+ 83 Linux
Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c5e30
Device Boot Start End Blocks Id System
/dev/vdb1 * 2048 104857566 52427759+ 83 Linux
手动进行挂载
mount /dev/vdb1 /mnt/
然后进去以前得主目录,看看数据还在不在
看到ls命令之后蹦出来得数据,我喜极而泣!
数据终于最小损失得找了回来!
列一下我这个目录下得一些主要文件
- aliyun_mysql_back_up 阿里云数据库异地备份目录
- dblogXXX.sql 博客数据库 手动备份脚本
- mysqlBackUp mysql脚本备份
- nginx docker容器得宿主机目录,一些 https证书以及nginx配置文件和日志文件
- ngrok 内网穿透相关
- redis redis容器宿主机相关
比较幸运得是,数据基本都能找回来了,也没有什么太大得损失,算是惊魂了一把。
因为我的应用都是基于docker得,数据库备份脚本也都找回来了,所以短时间内应用就欢快得跑了起来!
总结
- 云服务器敏感得端口尽量不要设置为开放,即使设置为开放,也要设置为固定ip可访问,而不是所有客户端能访问
- 事故发生了不要急,一步一步来,没准就会像楼主一样能最大减少损失,不抛弃不放弃
- 心态别崩,即使都挂了,也要做好从头再来得准备,别像楼主,救护车都准备叫好了
- 不要怕麻烦,数据做好备份,真正出事得时候,你会觉得:真香!
欢迎关注我的个人公众号,只发原创!