情况概述 今天登陆在腾讯云服务器上搭建的 MySQL 数据库,发现数据库被黑了,黑客提示十分明显。 MySQL 中只剩下两个数据库,一个是information_schema,另一个是黑客创建的PLEASE_READ,其中有一张info表,内容如下: Info: Your DB is Backed ......
情况概述
今天登陆在腾讯云服务器上搭建的 mysql 数据库,发现数据库被黑了,黑客提示十分明显。
mysql 中只剩下两个数据库,一个是information_schema
,另一个是黑客创建的please_read
,其中有一张info
表,内容如下:
-
info
: your db is backed up at our servers, to restore send 0.2 btc to the bitcoin address then send an email with your server ip
-
bitcoin_address
: 1f33lejjdphd6ypaonnchejwlcgkgdgqw9
-
email
: mysqldata@mail2tor.com
显然,我这是遇到比特币敲诈了。我的数据在别人的服务器里安然的躺着,需要向黑客支付 0.2 比特币才有可能恢复。按照当前的汇率,0.2 比特币大约为 1400 人民币,这是我第一次遇到网络敲诈,金额还不小。
所幸数据库里并没有值钱的数据,就当是送给黑客了,不过 数据库安全问题 引起了我的注意。
安全措施
mysql 中只剩下两个数据库,一个是information_schema
,另一个是黑客创建的please_read
,其中有一张info
表,内容如下:
-
info
: your db is backed up at our servers, to restore send 0.2 btc to the bitcoin address then send an email with your server ip
-
bitcoin_address
: 1f33lejjdphd6ypaonnchejwlcgkgdgqw9
-
email
: mysqldata@mail2tor.com
显然,我这是遇到比特币敲诈了。我的数据在别人的服务器里安然的躺着,需要向黑客支付 0.2 比特币才有可能恢复。按照当前的汇率,0.2 比特币大约为 1400 人民币,这是我第一次遇到网络敲诈,金额还不小。
所幸数据库里并没有值钱的数据,就当是送给黑客了,不过 数据库安全问题 引起了我的注意。
安全措施
由于缺乏必要的安全措施和备份机制,数据库中原有的数据均已丢失。为了恢复到 mysql 初始的状态,重新安装了 mysql 数据库,并且重新创建原先存在的数据库,同时,为了防止再次被黑客入侵,对 mysql 进行了一些安全配置。
针对此事项,建议做以下调整,以防范黑客攻击:
1、服务器的管理员密码具备一定复杂度,建议使用字母、数字、字符组合的密码。
2、服务器关闭远程访问(或关闭外网的远程访问),调整远程访问默认的端口号。
3、mysql的root用户密码具备一定复杂度,建议使用字母、数字、字符组合的密码。
4、mysql不允许任意远程端连接,建议仅对协同系统所在的ip地址放开连接。
5、mysql不使用默认的3306端口,建议修改为其他端口。(mysql的配置文件:windows为my.ini、linux为my.cnf,修改其端口号)
修改my.cnf端口
vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3389
# disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
以上红色处为新增的端口设置信息
6、mysql设置定时备份,并将数据备份包备份在异机(或异地)。
快快腾出您的宝贵时间,落实以上几点,为您的数据库保驾护航!
-------------------------------------------------------------------------------
yum 和 rpm安装mysql彻底删除
1、yum方式安装的mysql
$ yum remove mysql mysql-server mysql-libs compat-mysql51
$ rm -rf /var/lib/mysq
$ rm /etc/my.cnf
查看是否还有mysql软件:
$ rpm -qa|grep mysql
如果存在的话,继续删除即可,删除方式:yum remove + 【名字】。
2、查看系统中是否以rpm包安装的mysql:
[root@localhost opt]# rpm -qa | grep -i mysql
mysql-server-5.6.17-1.el6.i686
mysql-client-5.6.17-1.el6.i686
a)卸载mysql
[root@localhost local]# rpm -e mysql-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e mysql-client-5.6.17-1.el6.i686
b)删除mysql服务
centos7版本以下用以下命令:
[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql
centos7版本以上用以下命令:
systemctl list-dependencies mysql
下一步不知道了。。。
c)删除分散mysql文件夹
[root@localhost local]# whereis mysql 或者 find / -name mysql 两个都试一下
mysql: /usr/lib/mysql /usr/share/mysql
清空相关mysql的所有目录以及文件,逐一删除
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
总之删到通过上面两种命令查不出来任何有关mysql的东西
通过以上几步,mysql应该已经完全卸载干净了。
安装mysql
1. 获取rpm包
rpm -uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2. 安装
yum -y install mysql-community-server
安装完成
3. 启动mysql服务
#加入开机启动
systemctl enable mysqld
#启动mysql服务进程
systemctl start mysqld
#查看mysql状态
systemctl status mysqld
4. 初始化
#初始化,执行命令,重置密码
mysql_secure_installation
#会依次出现以下问题。
set root password? [y/n]
是否设置root用户的密码 (y后【设置登录密码】)
remove anonymous users? [y/n]
是否删除匿名用户 (y)
disallow root login remotely? [y/n]
是否禁止root远程登录 (n)
remove test database and access to it? [y/n]
是否删除test数据库(y)
reload privilege tables now? [y/n]
是否重新加载授权信息 (y)
5. 创建远程登录的用户
# 先进入mysql
mysql -u root -p
# 授权(root用户)远程连接权限(不建议)
grant all privileges on *.* to 'root'@'%' identified by '远程登录密码' with grant option;
flush privileges;
# 使用单独的远程登录用户(推荐)
grant all privileges on *.* to '新用户名'@'%' identified by '远程登录密码' with grant option;
flush privileges;
good luck!