一次服务器被黑的惨痛教训

和大家分享一个惨痛的教训,服务器上数据全都不见了,只留下了比特币付款地址,过往的学习记录都没了,惨痛!!!

先来看看事情的经过。

经过

有段时间没上服务器看了,心情不错,连了一下我的服务器

ssh root@@xxx.xxx.xxx.xxx

输入密码,连接成功了,老习惯,ls一下,emmm... 没什么问题。

然后连接数据库随便看看

mysql -u root -p xxx

然后日常数据命令

show databases;

然后 选择之前做的一个项目,carefree

use carefree;

然后看看哪些表

show tables;

然后一脸蒙圈,为啥只有一个表了?是不是我命令输错了,继续 show tables;

看看 还是只有一个表???

那来看看这个表里有些什么东西

select * from README;

然后看到了这句话。

以下数据库已被删除:xxxx 我们有完整的备份。要恢复它,您必须向我们的比特币地址bc1q8ap7s3j8jltmanmhtm48lmmz776t9mjp3ggmxz支付0.0075比特币(BTC)

一眼吃惊,这是服务器被黑了啊!!!!

惊慌失措中...

然后赶紧看看服务器登录日志,排除一下有没有其他异常ip登录,会不会有人拿我机器挖矿啊,毕竟最近矿价又高了起来!

last 命令查看登录日志

然后仔细瞧了几遍,还好还好,没有异常ip登录。

不过我的数据都被drop掉了!全无了。虽然数据不是很重要,但是这次教训还是惨痛的。

反思

主要反思为什么被黑了。

第一:之前部署过java的服务,springboot 数据库的各类信息,端口,库名,甚至密码都明文写入文件了。虽然没有git push到远端,但是这种情形,特别危险。

第二:把服务器借给其他人在学习,部署了一些服务,这些服务很容易被SQL注入,之前就有被SQL注入删除单个表数据的历史,已经存在隐患了。大意了。这次全给我删了。

第三:看看服务器的端口开放情况,3306直接给公网公开了,难怪容易被黑。3306公开,不黑我黑谁。那些攻击别人服务器的脚本大多都会去尝试默认端口,mysql的默认端口就是3306。

第四:数据库密码过于简单,我的密码就是两个123,很容易被破解。

如何应对

第一:无论如何不要开启相关默认端口,例如:mysql的3306、redis的6379等端口。这些默认端口都是黑客重点照顾对象

第二:如果要想在被攻击的情况下回复数据库,一定要把数据库的binlog日志开启,笔者这次就是没有开启,也没怎么在意这个,以为阿里云服务器就很安全了。后续也给大家分享为什么binlog可以做备份。

第三:修改数据库密码为高强度密码,一般具有大小写、数字、特殊符号的密码,强度就比较高了。

第四:修改数据库权限,修改为特定的ip才能都访问以及本地可访问。

总结

本次被攻击遭遇,虽然数据丢失不是特别重要(仅仅过往的学习记录)但是也给我提了个醒,小心别人利用我的服务进行挖矿!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值