服务器被黑,p0级事故现场

本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

事情过程

image.png

网站访问不了的事也有发生过,我当时的也没多想,感觉应该是服务挂了,重启一下就可以了。

image.png

花Gie用二指禅熟练的敲着命令,服务成功启动,很完美,访问一下主页试试。

abfc6489985db8d0117a34b64e5724a.png

这……,略显尴尬,于是打开日志看了一下,在日志上提示是表不存在,当时还是觉得问题不大,猜想应该是数据库发神经,没有忽略数据库表大小写之类的问题,然后就用本地的navicat打开数据库看了一下。

image.png

不看还好,一看眼睛都湿润了,这踏马太感人了,两个库删的干干净净,就剩下了一张表,表的内容大致意思就是 你的数据库已被我攻击了,如要赎回,速速交出比特币,否则立马散播出去

image.png

image.png

数据库恢复之路

就算一万个那啥啥奔腾而过,花Gie也要坚强,不哭。不能慌,常在河边走哪有不湿鞋,这个时候更需要展现出惊人的应对能力。

  • 备份库

我首先在看了下以前有没有备份过,很惨,这是我个人网站,平时也就自己开发维护,在测试环境只有表结构,没有数据备份,忍不住流下没有备份习惯的眼泪。

  • binlog

不慌,还有binlog(此时的内心已经开始慌张,默默祈求当时一定开启过binlog)。

首先打开数据库,输入show variables like 'log_bin';查看

image.png

嗯,很好,结果查出来了,和我想的一样,我没有开启binlog。。。

image.png

在MySQL8以前,这个功能是默认关闭的,需要手动开启。虽然我的数据库binlog没有开启,这里还是要给其他小伙伴介绍一下binlog怎么玩。

  1. /etc/my.cn添加如下配置文件后面会专门写一篇binlog怎么玩的教程

[mysqld]

server_id=1918

log_bin = mysql-bin

binlog_format = ROW

image.png

  1. 重启mysql

CentOS 6:service mysqld restart

CentOS 7:systemctl restart mysqld

  1. 使用show variables like '%log_bin%'查看是否开启成功

image.png

  • 服务器快照

前面两种方式都不适用,说实话,我有点慌了,真慌了。。。我个人博客辛辛苦苦积累的十万张图片素材,还有一千多篇文章就这么没了,真的挺可惜的。于是我冥思苦想,想起来我可以去找找腾讯云服务器的快照,这是我最后一根救命稻草,我小心翼翼的登录网站,点开快照按钮,我甚至不敢睁开眼。

哈哈哈哈哈哈哈…….哈哈哈哈哈哈哈………啊啊啊啊啊啊啊啊啊啊啊啊…………啊啊啊啊啊啊啊啊啊啊啊啊……………啊哈哈啊哈哈哈哈哈哈。

苍天不负有心人,终于经过这么久的努力,我放弃了,我踏马放弃了,服务器没有快照。我哭了,哭的好大声。

image.png

最后的倔强

从小就受优秀环境熏陶的花Gie是不会向恶势力低头的,绝不,绝不可能。大家看好,就是这个邮箱…

image.png

血的教训

综合我的这次事件,我这里也给小伙伴们一些警醒,也是一些注意项:

  • 密码强化,千万不要root/root,admin/admin,这简直送人头,非常容易破解
  • 不推荐使用默认的端口3306
  • 极其不推荐放开远程访问权限,在my.cnf 配置文件中添加 bind-address =127.0.0.1, 设置仅限本地访问,如果是硬性需求,只允许特定安全网段访问数据库。
  • 开启binlog
  • 使用云主机的安全组功能,限制访问来源和端口。

总结

对于网络安全,这次也算是一个警醒,也算给小伙伴们做了一个示范,如果有大佬还有其他什么办法,可以留言告诉我,我还想挣扎一下,再次流下心痛求安慰的泪水

点关注,防走丢

以上就是本期全部内容,如有纰漏之处,请留言指教,非常感谢。我是花Gie,有问题大家随时留言讨论 ,我们下期见?。

文章持续更新,可以微信搜一搜 Java开发零到壹 第一时间阅读,并且可以获取面试资料学习视频等,有兴趣的小伙伴欢迎关注,一起学习,一起哈??。

原创不易,你怎忍心白嫖,如果你觉得这篇文章对你有点用的话,感谢老铁为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享