情况概述

今天登陆在腾讯云服务器上搭建的 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= 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!

Mysql被黑客入侵及安全措施总结的更多相关文章

  1. 快速自检电脑是否被黑客入侵过(Linux版)

    之前写了一篇快速自检电脑是否被黑客入侵过(Windows版), 这次就来写写Linux版本的. 前言 严谨地说, Linux只是一个内核, GNU Linux才算完整的操作系统, 但在本文里还是用通俗 ...

  2. Dappy如何防止DNS黑客入侵

    作者:Raphaël 译者注:Dappy是RChain生态中的DNS[域名系统(服务)协议].Dappy基于RChain的技术架构保障了域名系统的安全性. Dappy是一个用于文件和Web应用程序的去 ...

  3. 快速自检电脑是否被黑客入侵过(Windows版)

    我们经常会感觉电脑行为有点奇怪, 比如总是打开莫名其妙的网站, 或者偶尔变卡(网络/CPU), 似乎自己"中毒"了, 但X60安全卫士或者X讯电脑管家扫描之后又说你电脑" ...

  4. dede织梦如何防止被黑客入侵渗透?

    dede精简设置篇:避免被hack注射挂马 精简设置篇:不需要的功能统统删除.比如不需要会员就将member文件夹删除.删除多余组件是避免被hack注射的最佳办法.将每个目录添加空的index.htm ...

  5. 快速自检电脑是否被黑客入侵过(Linux版)

    前言 严谨地说, Linux只是一个内核, `GNU Linux`才算完整的操作系统, 但在本文里还是用通俗的叫法, 把`Ubuntu`,`Debian`,`RedHat`,`CentOS`,`Arc ...

  6. Mysql被黑客攻击了?一定要注意一点,不要关闭mysql服务

    因为mysql没有关闭的情况,可以从缓存里面获取到数据,如果关闭了只能从文件里面去获取数据了,会大大加大恢复难度

  7. 预防黑客入侵 防黑必学的cmd命令vs网络安全

    这些命令又可*********三类:网络检测(如ping).网络连接(如telnet)和网络配置(如netsh).前面两种相对简单,本文只介绍两个网络配置工具.自带的关于网络的命令行工具很多,比如大家 ...

  8. cmd黑客入侵命令大全

    nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写 tracert -参数 ip(或计算机名) 跟踪路由(数据包 ...

  9. 一次linux服务器黑客入侵后处理

     场景: 周一上班centos服务器ssh不可用,web和数据库等应用不响应.好在vnc可以登录 使用last命令查询,2号之前的登录信息已被清空,并且sshd文件在周六晚上被修改,周日晚上2点服务器 ...

随机推荐

  1. scrapy抓取人人网上的“新鲜事”

    利用scrapy模拟登陆人人网,笔者本打算抓取一下个人页面新鲜事,感觉这个网站越做越差,都懒得抓里面的东西了.这里仅仅模拟人人网登陆,说明一下scrapy的POST请求问题. 人人网改版之后,反爬措施 ...

  2. DVWA学习之SQL注入

    DVWA学习之SQL注入 环境工具 dvwa 1.9 phpstudy firefox burpsuite 实验步骤 一.设置安全级别为LOW 1. 登录DVWA,并将安全级别设置为LOW 2. 进入 ...

  3. jqery 动态添加元素 绑定事件

    jQuery动态添加元素: var url = "...";//服务地址 $.ajax({ type: 'post', url: url, data:{fireId:fireId} ...

  4. Spring(Bean)5

    spel <bean id="address" class="com.atguigu.spring.beans.spel.Address"> < ...

  5. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家 ...

  6. Chapter 05—Advanced data management(Part 2)

    二. 控制流 statement:一个单独的R语句或者是一个复合的R语句: cond:条件表达式,为TRUE或FALSE: expr:数字或字符表达式: seq:数字或字符串的顺序. 1.循环语句:f ...

  7. 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)【华为云技术分享】

    前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ...

  8. NB-IoT将成为未来5G物联网主流技术

    日前,我国完成了IMT-2020(5G)候选技术方案的完整提交.据悉,在提交的方案中,NB-IoT技术被正式纳入5G候选技术集合,预计2020年6月ITU将正式宣布5G技术方案的诞生.而NB-IoT也 ...

  9. Python之HTTP静态服务器-面向对象版开发

    利用面向对象的思想完成HTTP静态Web服务器的开发. 主要思路如下: 1.抽象出一个服务器类 1.1 编写类的对象属性 1.2 编写类的方法 注意: 在进行请求资源路径判断时,需要确认请求路径中是否 ...

  10. 转:关于java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication的解决

    在这个控制板中,出现了这个问题 java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication 虽然明显知道是 ...