前言
事情被发现是在昨天,在上班路上的时候,有个群友向我反应网站是不是挂了。我刚开始没太在意,还以为是腾讯云不稳定。等到他又和我说数据库不存在的时候,我意识到事情没有那么简单。
当我想登陆MySQL服务器的时候发现root用户密码被人修改了。但是白天上班太忙了,实在没有时间,晚上回来才有时间处理。回来立马改了root用户的密码
更改root密码
1.修改my.cnf,在[mysqld]下面加入一行skip-grant-tables
代码语言:javascript复制vim /etc/my.cnf
[mysqld]
skip-grant-tables
2.重启mysql
代码语言:javascript复制service mysqld restart
3.登录mysql,此时不需要输入密码,直接回车即可。并重新设置密码
代码语言:javascript复制mysql
update mysql.user set password=PASSWORD('yourpassword') where user='root';
flush privileges;
quit;
4.再次修改my.cnf文件,将skip-grant-tables注掉
代码语言:javascript复制vim /etc/my.cnf
[mysqld]
#skip-grant-tables
5.重启mysql
代码语言:javascript复制service mysqld restart
# 回车输入密码即可
mysql -u root -p
好了,现在能正常登陆MySQL服务器了。所有的表已经全被删除了,只留下一个 WARNING表
To recover your lost Database and avoid leaking it: Send us 0.06 Bitcoin (BTC) to our Bitcoin address 1BLYhUDmnmVPVjcTWgc6gFT6DCYwbVieUD and contact us by Email with your Server IP or Domain name and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers . If we dont receive your payment in the next 10 Days, we will make your database public or use them otherwise.
主要意思就是让我打0.06个比特币(约4300块人民币)到指定账户,如果10天之内收不到比特币,则数据将会被公开。因为数据不是很值钱,并且没有安全隐患,因为登陆系统的密码做了加盐措施,并且做了多次MD5,破解的难度极大。最主要还是穷,因此并没有支付比特币,不过经过这次事情,相应的安全措施以后一定要做好
安全措施
1.开启快照
腾讯云提供了快照措施,可以快速将应用恢复到某个可用的状态,有50g的免费额度,对于我来说已经足够用了,下面是对腾讯云快照的概述。
数据保护:对重要业务做快照可以应对误操作、攻击或病毒等导致的数据丢失风险,也可将在业务升级、业务迁移等重大操作过程中出现问题的业务及时恢复至历史正常状态。灵活管理:推荐使用定期快照,针对不同业务类型制定不同的策略。您可指定云硬盘关联到定期快照策略,周期性地定时创建、删除快照,更方便地保护您的数据安全。
我这里把快照保存到我服务器本身的硬盘上(可以看到 关联硬盘数量是1个)
当发生问题的时候,可以通过回滚快照,让服务快速可用
2.制作系统镜像
在购买的实例处点击制作镜像即可
因为快照是保存在服务器的硬盘上的,如果服务器被黑,硬盘上的数据被删,那么还是会有安全问题的。我们可以每隔一段时间制作系统镜像,系统镜像是保存在腾讯云盘上的,这样快照被删除的时候,我们可以通过重装系统,选择自定义镜像来快速恢复服务
血的教训
1.root用户一定要限定ip访问
我原来为了方便直接配置的是root@%,这样只要知道了我的root密码,在哪都能登陆root用户。现在已经限制ip访问了
2.不要将root用户名和密码写到配置文件中
这次被人攻击最主要的原因就是我把root用户名和密码写到wordpress的配置文件中,正确的做法是一个应用配置一个用户名(用户权限细分到每个数据库) wp-config.php
代码语言:javascript复制/** MySQL数据库用户名 */
define( 'DB_USER', 'root' );
/** MySQL数据库密码 */
define( 'DB_PASSWORD', '123456' );
3.不要使用短的密码,用密码生成网站生成密码
都是方便惹得货,我原来的root用户密码配的很简单。这次必须得设置的复杂一点 地址:https://suijimimashengcheng.51240.com/